amd64/nats注意:这是 nats官方镜像 的 amd64 架构构建的"按架构"仓库——更多信息,请参见官方镜像文档中的 "除amd64之外的架构?" 和官方镜像FAQ中的 "镜像源在Git中已更改,现在该怎么办?"。
维护者:
NATS项目
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接(参见FAQ中的 "'Shared' 和 'Simple' 标签有什么区别?")
2.12.1-alpine3.22, 2.12-alpine3.22, 2-alpine3.22, alpine3.22, 2.12.1-alpine, 2.12-alpine, 2-alpine, alpine
2.12.1-scratch, 2.12-scratch, 2-scratch, scratch, 2.12.1-linux, 2.12-linux, 2-linux, linux
2.11.10-alpine3.22, 2.11-alpine3.22, 2.11.10-alpine, 2.11-alpine
2.11.10-scratch, 2.11-scratch, 2.11.10-linux, 2.11-linux
2.10.29-alpine3.22, 2.10-alpine3.22, 2.10.29-alpine, 2.10-alpine
2.10.29-scratch, 2.10-scratch, 2.10.29-linux, 2.10-linux
2.12.1, 2.12, 2, latest:
2.12.1-scratch2.11.10, 2.11:
2.11.10-scratch2.10.29, 2.10:
2.10.29-scratch提交issue的地址:
[***]
支持的架构:(更多信息)
amd64、arm32v6、arm32v7、arm64v8、ppc64le、s390x、windows-amd64
已发布镜像制品详情:
repo-info仓库的repos/nats/目录(历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images仓库的library/nats标签
official-images仓库的library/nats文件(历史记录)
本描述的来源:
docs仓库的nats/目录(历史记录)
!logo
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>


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