如何修改NATS容器端口?解决客户端默认端口连接超时问题
问题分析与解决
你的问题出在两个关键环节:
1. 容器启动时未正确配置NATS监听端口
NATS服务默认在容器内部监听4222端口,你执行的docker run -d -p 4225:4225 nats -js仅做了主机4225到容器4225的端口映射,但容器内的NATS并未在4225端口启动——它还是默认运行在4222端口,这导致你的端口映射完全无效。
2. NATS客户端默认连接4222端口
nats sub命令如果不指定服务器地址,会自动尝试连接127.0.0.1:4222,这就是你看到超时错误的直接原因。
解决步骤
第一步:修正容器启动命令
有两种可选方式:
- 方式一:映射主机4225到容器默认4222(推荐,无需修改服务默认配置)
docker run -d -p 4225:4222 nats -js - 方式二:修改容器内NATS监听端口为4225
给nats命令加上-p 4225参数指定服务监听端口,同时保持端口映射一致:docker run -d -p 4225:4225 nats -js -p 4225
第二步:指定客户端连接端口
执行订阅命令时,必须通过-s(或--server)参数指定NATS服务的地址和端口:
nats sub test -s nats://127.0.0.1:4225
这样就能正常连接到你的NATS容器了。
内容的提问来源于stack exchange,提问作者mohandes
相关产品推荐
相关产品推荐

