arm32v6/nats是NATS消息系统服务器的Docker镜像,专为arm32v6架构构建。NATS是一个开源、高性能的云原生消息系统,旨在提供低延迟、高吞吐量的异步通信能力,适用于分布式系统和微服务架构。
注意:本镜像为nats官方镜像的"按架构"仓库,仅包含arm32v6架构构建。更多架构信息参见https://github.com/docker-library/official-images#architectures-other-than-amd64%E3%80%82
| 标签 | 对应的Dockerfile |
|---|---|
2.12.1-alpine3.22, 2.12-alpine3.22, 2-alpine3.22, alpine3.22, 2.12.1-alpine, 2.12-alpine, 2-alpine, alpine | https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.12.x/alpine3.22/Dockerfile |
2.12.1-scratch, 2.12-scratch, 2-scratch, scratch, 2.12.1-linux, 2.12-linux, 2-linux, linux | https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.12.x/scratch/Dockerfile |
2.11.10-alpine3.22, 2.11-alpine3.22, 2.11.10-alpine, 2.11-alpine | https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.11.x/alpine3.22/Dockerfile |
2.11.10-scratch, 2.11-scratch, 2.11.10-linux, 2.11-linux | https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.11.x/scratch/Dockerfile |
2.10.29-alpine3.22, 2.10-alpine3.22, 2.10.29-alpine, 2.10-alpine | https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.10.x/alpine3.22/Dockerfile |
2.10.29-scratch, 2.10-scratch, 2.10.29-linux, 2.10-linux | https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.10.x/scratch/Dockerfile |
| 标签 | 对应的基础镜像 |
|---|---|
2.12.1, 2.12, 2, latest | 2.12.1-scratch |
2.11.10, 2.11 | 2.11.10-scratch |
2.10.29, 2.10 | 2.10.29-scratch |
启动单节点NATS服务器,映射默认端口:
bashdocker run -d \ --name nats-server \ -p 4222:4222 # 客户端连接端口 \ -p 8222:8222 # HTTP管理端口 \ -p 6222:6222 # 集群路由端口 \ arm32v6/nats
修改服务器监听端口(需同时调整容器端口映射):
bash# 服务器监听4444端口,宿主机映射5555端口 docker run -d \ --name nats-custom-port \ -p 5555:4444 \ arm32v6/nats -p 4444
启用JetStream功能(持久化流处理):
bashdocker run -d \ --name nats-jetstream \ -p 4222:4222 \ arm32v6/nats -js
使用Docker卷持久化JetStream数据:
bash# 创建数据卷 docker volume create nats-data # 启动服务器并挂载卷 docker run -d \ --name nats-js-persist \ -p 4222:4222 \ -v nats-data:/data \ # 挂载数据卷到容器/data目录 arm32v6/nats -js -sd /data # -sd指定JetStream存储目录
部署两个节点组成集群:
bash# 启动第一个节点(主节点) docker run -d \ --name nats-node1 \ -p 4222:4222 \ -p 6222:6222 \ arm32v6/nats -cluster name=my_cluster,port=6222 # 启动第二个节点并连接到主节点 docker run -d \ --name nats-node2 \ -p 4223:4222 \ -p 6223:6222 \ --link nats-node1 \ # 链接到主节点容器 arm32v6/nats -cluster name=my_cluster,port=6222 --routes=nats-route://ruser:T0pS3cr3t@nats-node1:6222
创建docker-compose.yml配置文件:
yamlversion: '3' services: nats: image: arm32v6/nats:alpine container_name: nats-server ports: - "4222:4222" # 客户端端口 - "8222:8222" # 管理端口 - "6222:6222" # 集群端口 volumes: - nats-data:/data # 持久化数据卷 command: -js -sd /data # 启用JetStream并指定存储目录 restart: unless-stopped volumes: nats-data: # 定义数据卷
启动服务:
bashdocker-compose up -d
容器内默认配置文件路径:/etc/nats/nats-server.conf,内容如下:
conf# 客户端端口(所有接口) port: 4222 # HTTP监控端口 monitor_port: 8222 # 集群配置 cluster { # 集群名称 name: "my_cluster" # 路由连接端口(所有接口) port: 6222 # 路由认证配置 authorization { user: ruser password: T0pS3cr3t timeout: 2 } # 主动连接的路由列表(默认空) routes = [] }
NATS服务器支持以下核心命令行参数(完整列表见下方):
| 参数 | 说明 |
|---|---|
-a, --addr <host> | 绑定主机地址(默认:0.0.0.0) |
-p, --port <port> | 客户端端口(默认:4222) |
-m, --http_port <port> | HTTP监控端口 |
-c, --config <file> | 指定配置文件路径 |
-js, --jetstream | 启用JetStream功能 |
-sd, --store_dir <dir> | JetStream存储目录 |
--routes <urls> | 集群路由URL列表(逗号分隔) |
-D, --debug | 启用调试日志 |
-V, --trace | 启用协议跟踪 |
完整命令行选项:
bashServer Options: -a, --addr, --net <host> 绑定主机地址(默认:0.0.0.0) -p, --port <port> 客户端端口(默认:4222) -n, --name, --server_name <name> 服务器名称(默认:自动生成) -P, --pid <file> PID文件路径 -m, --http_port <port> HTTP监控端口 -ms,--https_port <port> HTTPS监控端口 -c, --config <file> 配置文件路径 -t 测试配置并退出 -sl,--signal <signal>[=<pid>] 发送信号给服务器进程(stop, quit, reopen, reload) --client_advertise <url> 客户端连接URL(用于集群广告) --ports_file_dir <dir> 端口文件存储目录 Logging Options: -l, --log <file> 日志输出文件 -T, --logtime 日志时间戳(默认:启用) -s, --syslog 输出到syslog/windows事件日志 -r, --remote_syslog <addr> 远程syslog服务器地址(udp://localhost:514) -D, --debug 启用调试日志 -V, --trace 跟踪原始协议 -VV 详细跟踪(含系统账号) -DV 同时启用调试和跟踪 -DVV 调试和详细跟踪 --log_size_limit <limit> 日志文件大小限制(默认:自动) --max_traced_msg_len <len> 跟踪消息最大打印长度(默认:无限制) JetStream Options: -js, --jetstream 启用JetStream功能 -sd, --store_dir <dir> JetStream存储目录 Authorization Options: --user <user> 客户端连接用户名 --pass <password> 客户端连接密码 --auth <token> 客户端连接令牌 TLS Options: --tls 启用TLS(不验证客户端) --tlscert <file> 服务器证书文件 --tlskey <file> 服务器私钥文件 --tlsverify 启用TLS并验证客户端证书 --tlscacert <file> 客户端CA证书文件 Cluster Options: --routes <rurl-1,rurl-2> 集群路由URL列表 --cluster <url> 集群广告URL --cluster_name <name> 集群名称(默认:自动生成) --no_advertise <bool> 不向客户端广告集群信息 --cluster_advertise <url> 集群广告URL --connect_retries <num> 路由连接重试次数 --cluster_listen <url> 集群监听URL Profiling Options: --profile <port> 性能分析HTTP端口 Common Options: -h, --help 显示帮助信息 -v, --version 显示版本信息 --help_tls TLS帮助信息
arm32v6/nats:<version>(默认版本)基于scratch(空镜像)构建,仅包含NATS服务器二进制文件,体积最小(~10MB),适合对镜像大小敏感的场景。由于基于scratch,不包含Shell和基础系统工具,仅适用于直接运行NATS服务器。
arm32v6/nats:<version>-alpine基于Alpine Linux构建,包含精简的系统环境(~5MB基础镜像),提供基本的Shell工具,便于调试和扩展。适合需要在容器内执行简单系统命令的场景,同时保持较小的镜像体积。
NATS服务器软件许可协议参见https://github.com/nats-io/gnatsd/blob/master/LICENSE%E3%80%82
Docker镜像包含的第三方软件(如基础系统组件)可能具有独立许可证,详细信息参见https://github.com/docker-library/repo-info/tree/master/repos/nats%E3%80%82
使用本镜像即表示您同意遵守所有包含软件的许可条款。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务