Docker 堆栈部署:无法设置 dnsrr,因为端口暴露为入口

Mus*_*hym 5 ports docker

使用 stack deploy 启动服务时,我们收到以下错误:

“来自守护进程的错误响应:rpc 错误:代码 = 3 desc = EndpointSpec:以入口模式发布的端口不能与 dnsrr 模式一起使用”

测试让我尝试:使用ignress=falseset手动创建网络,在不公开端口的情况下启动堆栈部署并将节点加入网络,然后手动公开端口。

docker service update --publish-add 5672:5672 service_name1
Run Code Online (Sandbox Code Playgroud)

但仍然得到同样的错误。

有什么想法吗?

小智 11

对于端点模式设置为dnsrr端口的服务,无法使用默认模式“入口”发布。将发布模式更改为主机应该可以工作。

docker service update --publish-add published=80,target=80,protocol=tcp,mode=host service_name
Run Code Online (Sandbox Code Playgroud)

在撰写文件中,它会像,

ports:
  - target: 80
    published: 80
    protocol: tcp
    mode: host
Run Code Online (Sandbox Code Playgroud)


sun*_*der 0

可以通过以下两个命令来公开端口:-

docker service update service_name1 --endpoint-mode=vip
docker service update --publish-add 5672:5672 service_name1
Run Code Online (Sandbox Code Playgroud)

这会将端点模式从 dnsrr 更改为 vip,稍后您可以使用相同的命令公开端口