Docker堆栈部署:无法设置dnsrr,因为端口作为入口公开

问题描述 投票:2回答:1

使用堆栈部署启动服务时,我们收到以下错误:

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

测试让我尝试:使用ignress=false集手动创建网络,启动堆栈部署而不暴露端口并将节点加入网络,然后手动暴露端口。

docker service update --publish-add 5672:5672 service_name1

但仍然得到相同的错误。

有什么想法吗?

docker ports
1个回答
0
投票

可以通过以下两个命令来实现暴露端口: -

docker service update service_name1 --endpoint-mode=vip
docker service update --publish-add 5672:5672 service_name1

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


0
投票

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

docker service update --publish-add published=80,target=80,protocol=tcp,mode=host service_name

在撰写文件中,它会像,

ports:
  - target: 80
    published: 80
    protocol: tcp
    mode: host
© www.soinside.com 2019 - 2024. All rights reserved.