注意:这是 https://hub.docker.com/_/nats 的 amd64 架构构建的"按架构"仓库——更多信息,请参见官方镜像文档中的 https://github.com/docker-library/official-images#architectures-other-than-amd64 和官方镜像FAQ中的 https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E3%80%82
维护者:
https://github.com/nats-io/nats-docker
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接(参见FAQ中的 https://github.com/docker-library/faq#whats-the-difference-between-shared-and-simple-tags%EF%BC%89
https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.12.x/alpine3.22/Dockerfile
https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.12.x/scratch/Dockerfile
https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.11.x/alpine3.22/Dockerfile
https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.11.x/scratch/Dockerfile
https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.10.x/alpine3.22/Dockerfile
https://github.com/nats-io/nats-docker/blob/5b46acd148b1b7d13a084cca7fc1a50e75412360/2.10.x/scratch/Dockerfile
2.12.1, 2.12, 2, latest:
2.11.10, 2.11:
2.10.29, 2.10:
提交issue的地址:
https://github.com/nats-io/nats-docker/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/nats/%E3%80%81https://hub.docker.com/r/arm32v6/nats/%E3%80%81https://hub.docker.com/r/arm32v7/nats/%E3%80%81https://hub.docker.com/r/arm64v8/nats/%E3%80%81https://hub.docker.com/r/ppc64le/nats/%E3%80%81https://hub.docker.com/r/s390x/nats/%E3%80%81https://hub.docker.com/r/winamd64/nats/
已发布镜像制品详情:
https://github.com/docker-library/repo-info/blob/master/repos/nats%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/nats%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fnats
https://github.com/docker-library/official-images/blob/master/library/nats%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/nats%EF%BC%89
本描述的来源:
https://github.com/docker-library/docs/tree/master/nats%EF%BC%88https://github.com/docker-library/docs/commits/master/nats%EF%BC%89
!https://raw.githubusercontent.com/docker-library/docs/ad703934a62fabf54452755c8486698ff6fc5cc2/nats/logo.png
nats是NATS消息系统的高性能服务器。
bash# 运行NATS服务器 # 每个服务器暴露多个端口 # 4222用于客户端连接 # 8222是HTTP管理端口,用于信息报告 # 6222是集群路由端口 # # 运行容器时要实际发布端口,使用Docker端口映射标志 # "docker run -p <主机端口>:<容器端口>" 发布并映射一个或多个端口, # 或使用-P标志发布所有暴露的端口并映射到高阶端口 # # 注意不要与NATS Server自身的-p参数混淆。 # 例如,要运行NATS Server并让其监听4444端口, # 需按如下方式运行: # # docker run -p 4444:4444 amd64/nats -p 4444 # # 或者,如果要将4444端口发布为其他端口(例如5555): # # docker run -p 5555:4444 amd64/nats -p 4444 # # 要启用NATS JetStream,使用-js标志: # # docker run -p 4222:4222 amd64/nats -js # # 要将JetStream数据持久化到卷,可使用-v和-sd标志。 # 注意-v是Docker标志,而-js和-sd是NATS Server标志: # # docker run -p 4222:4222 -v nats:/data amd64/nats -js -sd /data # # 查看"docker run"获取更多信息。 $ docker run -d --name nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 amd64/nats [INF] Starting nats-server [INF] Version: 2.9.8 [INF] Git: [60e335a] [INF] Cluster: my_cluster [INF] Name: NB3YN6SPZF6MWTLPGYLRE2AD5VVWSW443RO43YR5GC62I463QPYGOL5C [INF] ID: NB3YN6SPZF6MWTLPGYLRE2AD5VVWSW443RO43YR5GC62I463QPYGOL5C [INF] Using configuration file: /etc/nats/nats-server.conf [INF] Starting http monitor on 0.0.0.0:8222 [INF] Listening for client connections on 0.0.0.0:4222 [INF] Server is ready [INF] Cluster name is my_cluster [INF] Listening for route connections on 0.0.0.0:6222 ... # 运行第二个服务器并将它们集群在一起.. # 注意,由于传递了参数,这会覆盖Dockerfile的CMD部分, # 因此需要传递所有参数,包括配置文件 $ docker run -d --name=nats-2 --link nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 amd64/nats -c /etc/nats/nats-server.conf --routes=nats-route://ruser:T0pS3cr3t@nats-main:6222 # 如果要验证路由是否已连接,可尝试: $ docker run -d --name=nats-2 --link nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 amd64/nats -c /etc/nats/nats-server.conf --routes=nats-route://ruser:T0pS3cr3t@nats-main:6222 -DV [INF] Starting nats-server [INF] Version: 2.9.8 [INF] Git: [60e335a] [DBG] Go build: go1.19.3 [INF] Cluster: my_cluster [INF] Name: NDFNAUTD4RKS2O7CMKMDMTV3DW5NIKFCQDDMXW2A5YXLUZWWX7RYFCKB [INF] ID: NDFNAUTD4RKS2O7CMKMDMTV3DW5NIKFCQDDMXW2A5YXLUZWWX7RYFCKB [INF] Using configuration file: /etc/nats/nats-server.conf [DBG] Created system account: "$SYS" [INF] Starting http monitor on 0.0.0.0:8222 [INF] Listening for client connections on 0.0.0.0:4222 [DBG] Get non local IPs for "0.0.0.0" [DBG] ip=172.17.0.2 [INF] Server is ready [DBG] maxprocs: Leaving GOMAXPROCS=4: CPU quota undefined [INF] Cluster name is my_cluster [INF] Listening for route connections on 0.0.0.0:6222 [DBG] Trying to connect to route on nats-main:6222 (172.17.0.3:6222) [DBG] 172.17.0.3:6222 - rid:4 - Route connect msg sent [INF] 172.17.0.3:6222 - rid:4 - Route connection created [DBG] 172.17.0.3:6222 - rid:4 - Registering remote route "NDQAU6HVD44TI2X5R2QRYJEIQR3MMHCFTW2BTSXBILBOZHJ4Z7AR7GGR" [DBG] 172.17.0.3:6222 - rid:4 - Sent local subscriptions to route
服务器将加载以下配置文件。任何命令行标志都可以覆盖这些值。
bash# 客户端端口4222,监听所有接口 port: 4222 # HTTP监控端口 monitor_port: 8222 # 用于将多个服务器集群在一起 cluster { # 建议设置集群名称 name: "my_cluster" # 路由连接在所有接口的6222端口接收 port: 6222 # 路由受保护,因此需要与--routes标志一起使用 # 例如 --routes=nats-route://ruser:T0pS3cr3t@otherdockerhost:6222 authorization { user: ruser password: T0pS3cr3t timeout: 2 } # 路由会被主动请求并连接到此服务器 # 此Docker镜像默认没有路由,但可以向nats-server docker镜像传递标志以创建到现有服务器的路由 routes = [] }
bash服务器选项: -a, --addr, --net <host> 绑定到主机地址(默认:0.0.0.0) -p, --port <port> 客户端使用端口(默认:4222) -n, --name --server_name <server_name> 服务器名称(默认:自动) -P, --pid <file> 存储PID的文件 -m, --http_port <port> HTTP监控端口 -ms,--https_port <port> HTTPS监控端口 -c, --config <file> 配置文件 -t 测试配置并退出 -sl,--signal <signal>[=<pid>] 向nats-server进程发送信号(stop, quit, reopen, reload) pid可以是PID(如1)或PID文件路径(如/var/run/nats-server.pid) --client_advertise <string> 向其他服务器广播的客户端URL 日志选项: -l, --log <file> 重定向日志输出到文件 -T, --logtime 日志条目带时间戳(默认:true) -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选项: -js, --jetstream 启用JetStream功能 -sd, --store_dir <dir> 设置存储目录 授权选项: --user <user> 客户端连接所需用户 --pass <password> 客户端连接所需密码 --auth <token> 客户端连接所需授权令牌 TLS选项: --tls 启用TLS,不验证客户端(默认:false) --tlscert <file>
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务