本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

NATS Streaming Server 已被弃用。关键错误修复和安全修复将持续到 2023 年 6 月。需要持久化功能的 NATS 应用程序应使用 JetStream。
nats-streaming 是 NATS 消息系统的高性能流服务器 Docker 镜像,提供持久化消息传递能力,支持发布/订阅、队列和请求/回复等消息模式。
NATS Streaming Server 暴露以下端口:
4222: 客户端连接端口8222: HTTP 管理端口,用于信息报告由于 Windows Docker 镜像构建的限制,不带参数运行镜像时,将启动基于内存存储的 NATS Streaming 服务器,监听端口 4222 和管理端口 8222。如果需要指定其他参数,必须显式指定可执行文件名:
docker run -p 4223:4223 -p 8223:8223 nats-streaming nats-streaming-server -p 4223 -m 8223
如果需要指定入口点:
docker run --entrypoint c:/nats-streaming-server/nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming
对于非 Windows 镜像,可直接在命令行传递参数。例如,将监听端口和管理端口分别更改为 4223 和 8223:
docker run -p 4223:4223 -p 8223:8223 nats-streaming -p 4223 -m 8223
如果需要指定入口点:
docker run --entrypoint /nats-streaming-server -p 4222:4222 -p 8222:8222 nats-streaming
# 运行 NATS Streaming 服务器 # 4222 端口用于客户端连接 # 8222 端口是 HTTP 管理端口 docker run -d -p 4222:4222 -p 8222:8222 nats-streaming
# 在端口 4444 上运行 NATS Streaming 服务器 docker run -d -p 4444:4444 -p 8222:8222 nats-streaming -p 4444
# 使用文件存储而非内存存储 docker run -d -p 4222:4222 -p 8222:8222 \ -v ./data:/datastore \ nats-streaming -store file -dir /datastore
# 首先运行 NATS 服务器 docker run -d --name=nats-main -p 4222:4222 nats # 然后启动 Streaming 服务器并连接到外部 NATS 服务器 docker run -d --link nats-main -p 8222:8222 \ -v ./data:/datastore \ nats-streaming -store file -dir /datastore -ns nats://nats-main:4222
version: '3' services: nats: image: nats ports: - "4222:4222" - "8222:8222" nats-streaming: image: nats-streaming depends_on: - nats command: -store file -dir /datastore -ns nats://nats:4222 volumes: - ./data:/datastore ports: - "8223:8222"
-cid, --cluster_id <string> 集群 ID (默认: test-cluster) -st, --store <string> 存储类型: MEMORY|FILE|SQL (默认: MEMORY) --dir <string> 对于 FILE 存储类型,指定根目录 -mc, --max_channels <int> 最大通道数 (0 表示无限制) -msu, --max_subs <int> 每个通道的最大订阅数 (0 表示无限制) -mm, --max_msgs <int> 每个通道的最大消息数 (0 表示无限制) -mb, --max_bytes <size> 每个通道的消息总大小限制 (0 表示无限制) -ma, --max_age <duration> 消息可存储的最大持续时间 ("0s" 表示无限制) -mi, --max_inactivity <duration> 通道可被垃圾回收前的最大不活动时间 (0 表示无限制) -ns, --nats_server <string> 连接到外部 NATS 服务器的 URL (否则使用嵌入式 NATS) -sc, --stan_config <string> 流服务器配置文件 -hbi, --hb_interval <duration> 服务器向客户端发送心跳的间隔 -hbt, --hb_timeout <duration> 服务器等待心跳响应的时间 -hbf, --hb_fail_count <int> 服务器关闭客户端连接前的失败心跳次数 --ft_group <string> FT 组名称。一个组可以有 2 个或更多服务器,只有一个活动服务器 -sl, --signal <signal>[=<pid>] 向 nats-streaming-server 进程发送信号 --encrypt <bool> 指定服务器是否应使用静态加密 --encryption_cipher <string> 用于加密的密码 (AES 或 CHAHA) --encryption_key <string> 加密密钥 (建议通过 NATS_STREAMING_ENCRYPTION_KEY 环境变量指定) --replace_durable <bool> 替换现有持久订阅而不是报告重复错误
--clustered <bool> 以集群配置运行服务器 (默认: false) --cluster_node_id <string> 集群中节点的 ID (默认: 随机 UUID) --cluster_bootstrap <bool> 如果没有现有状态,引导集群 (默认: false) --cluster_peers <string, ...> 集群对等节点 ID 的逗号分隔列表 --cluster_log_path <string> 存储日志复制数据的目录 --cluster_log_cache_size <int> 内存中缓存的日志条目数 (默认: 512) --cluster_log_snapshots <int> 保留的日志快照数 (默认: 2) --cluster_trailing_logs <int> 快照和压缩后保留的日志条目数 --cluster_sync <bool> 每次写入复制日志和消息存储后执行文件同步 --cluster_raft_logging <bool> 启用 Raft 库日志记录 (默认禁用) --cluster_allow_add_remove_node <bool> 允许向领导者发送 NATS 请求以添加/删除集群节点
-a, --addr <string> 绑定到主机地址 (默认: 0.0.0.0) -p, --port <int> 客户端端口 (默认: 4222) -P, --pid <string> 存储 PID 的文件 -m, --http_port <int> HTTP 监控端口 -ms,--https_port <int> HTTPS 监控端口 -c, --config <string> 配置文件
更多命令行选项请参考官方文档。
有关如何进一步配置 NATS Streaming 服务器的详细信息,请参见 官方文档。
流服务器本身与以前的版本向后兼容,但是 v0.15.0+ 版本现在嵌入了 NATS Server 2.0,这意味着如果使用嵌入式 NATS 服务器并希望将其路由到现有的 v0.14.3- 服务器,由于 NATS Server 路由协议的更改,它将失败。但是,可以使用 v0.15.0+ 并将其连接到现有的 NATS 集群,因此可以混合使用 v0.15.0 和 v0.14.3- 流服务器。
查看此镜像中包含的软件的 许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能具有其他许可证(例如来自基础发行版的 Bash 等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可证信息可能会在 repo-info 仓库的 nats-streaming/ 目录 中找到。
对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用符合其中包含的所有软件的相关许可证。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429