arm32v7/natsarm32v7/nats 镜像是 NATS 消息系统服务器的官方 arm32v7 架构构建版本。NATS 是一个高性能、轻量级的云原生消息系统,旨在为分布式系统提供低延迟、高吞吐量的通信能力。该镜像基于官方 nats 镜像构建,专门针对 32 位 ARM 架构设备(如树莓派等嵌入式系统)优化。
2.12.1-alpine3.22, 2.12-alpine3.22, 2-alpine3.22, alpine3.22, 2.12.1-alpine, 2.12-alpine, 2-alpine, alpine
Dockerfile
2.12.1-scratch, 2.12-scratch, 2-scratch, scratch, 2.12.1-linux, 2.12-linux, 2-linux, linux
Dockerfile
2.11.10-alpine3.22, 2.11-alpine3.22, 2.11.10-alpine, 2.11-alpine
Dockerfile
2.11.10-scratch, 2.11-scratch, 2.11.10-linux, 2.11-linux
Dockerfile
2.10.29-alpine3.22, 2.10-alpine3.22, 2.10.29-alpine, 2.10-alpine
Dockerfile
2.10.29-scratch, 2.10-scratch, 2.10.29-linux, 2.10-linux
Dockerfile
2.12.1, 2.12, 2, latest
对应镜像:2.12.1-scratch
Dockerfile
2.11.10, 2.11
对应镜像:2.11.10-scratch
Dockerfile
2.10.29, 2.10
对应镜像:2.10.29-scratch
Dockerfile
通过 docker run 命令启动 NATS 服务器,默认暴露 3 个端口:
示例:启动基础 NATS 服务
bashdocker run -d --name nats-server \ -p 4222:4222 \ # 客户端端口 -p 8222:8222 \ # 管理端口 -p 6222:6222 \ # 路由端口 arm32v7/nats
自定义客户端端口
若需修改 NATS 服务监听的客户端端口(如 4444),需同时调整容器端口映射:
bashdocker run -d --name nats-custom-port \ -p 5555:4444 \ # 宿主机5555端口映射到容器4444端口 arm32v7/nats -p 4444 # NATS服务监听容器内4444端口
NATS 支持多节点集群,通过路由端口实现节点间通信。以下示例部署两个节点组成集群:
启动主节点
bashdocker run -d --name nats-main \ -p 4222:4222 -p 6222:6222 -p 8222:8222 \ arm32v7/nats
启动从节点并加入集群
通过 --routes 参数指定主节点路由地址(默认路由用户 ruser,密码 T0pS3cr3t):
bashdocker run -d --name nats-replica \ -p 4223:4222 -p 6223:6222 -p 8223:8222 \ --link nats-main \ # 链接主节点容器 arm32v7/nats -c /etc/nats/nats-server.conf \ --routes=nats-route://ruser:T0pS3cr3t@nats-main:6222
验证集群状态:访问从节点管理端口
http://localhost:8223/routez,查看路由连接信息。
JetStream 提供消息持久化和流处理能力,需通过 -js 标志启用,建议配合数据卷持久化数据:
bashdocker run -d --name nats-jetstream \ -p 4222:4222 \ -v nats-data:/data \ # 数据卷挂载(需提前创建:docker volume create nats-data) arm32v7/nats -js -sd /data # -sd 指定数据存储目录(容器内路径)
NATS 支持通过配置文件定义服务参数,容器默认配置文件路径为 /etc/nats/nats-server.conf,内容如下:
conf# 客户端端口(默认4222) port: 4222 # HTTP管理端口 monitor_port: 8222 # 集群配置 cluster { name: "my_cluster" # 集群名称 port: 6222 # 路由端口 authorization { user: ruser # 路由认证用户 password: T0pS3cr3t # 路由认证密码 timeout: 2 # 认证超时(秒) } routes = [] # 初始路由列表(动态添加通过--routes参数) }
使用自定义配置文件
通过 -v 挂载本地配置文件替换默认配置:
bashdocker run -d --name nats-custom-config \ -v ./my-nats.conf:/etc/nats/nats-server.conf \ # 挂载本地配置文件 arm32v7/nats -c /etc/nats/nats-server.conf
NATS 服务支持通过命令行参数覆盖配置文件,常用参数如下:
| 类别 | 参数 | 说明 |
|---|---|---|
| 服务基础 | -a, --addr <host> | 绑定主机地址(默认0.0.0.0) |
-p, --port <port> | 客户端端口(默认4222) | |
-m, --http_port <port> | HTTP管理端口(默认8222) | |
| 集群 | --routes <rurl> | 集群路由地址(格式:nats-route://user:pass@host:port) |
--cluster_name <name> | 集群名称(默认自动生成) | |
| JetStream | -js, --jetstream | 启用JetStream功能 |
-sd, --store_dir <dir> | JetStream数据存储目录 | |
| 日志 | -D, --debug | 启用调试日志 |
-V, --trace | 启用协议跟踪日志 | |
| 安全 | --user <user> | 客户端连接用户名 |
--pass <password> | 客户端连接密码 | |
--tls | 启用TLS加密(需配合--tlscert和--tlskey) |
arm32v7/nats 提供多种标签变体,适配不同场景需求:
arm32v7/nats:<version>(默认变体)基于 scratch 基础镜像(空镜像)构建,仅包含 NATS 二进制文件,体积最小(约10-20MB),适合生产环境。
arm32v7/nats:<version>-alpine基于 alpine 基础镜像构建,包含 Alpine Linux 系统工具(如sh、ls),体积较小(约15-30MB),适合需要基础系统工具的调试场景。
alpine)可能包含其他开源软件,其许可证信息可参考 Docker 官方镜像文档。镜像使用需遵守所有包含软件的许可证条款。
维护者:NATS Project
问题反馈:nats-docker GitHub Issues
支持架构:amd64, arm32v6, arm32v7, arm64v8, ppc64le, s390x, windows-amd64


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务