Docker 堆栈部署 : unable to set dnsrr as ports are exposed as ingress

标签 docker ports

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

"Error response from daemon: rpc error: code = 3 desc = EndpointSpec: port published with ingress mode can't be used with dnsrr mode"

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

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

但仍然遇到同样的错误。

有什么想法吗?

最佳答案

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

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

在撰写文件中,它会是这样的,

ports:
  - target: 80
    published: 80
    protocol: tcp
    mode: host

关于Docker 堆栈部署 : unable to set dnsrr as ports are exposed as ingress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45841135/

相关文章:

docker - 在构建 docker 容器时在已挂载的卷上创建文件

selenium - NightwatchJS和Docker

java - 如何打包具有多个入口点的 Java 应用程序

MySQL 在两个端口上使用 IPTables - 自访问

java - 如何扫描远程主机使用的端口?

c++ - 使用打开的端口获取应用程序

amazon-web-services - 在 EKS 上的 Kubernetes 1.14 上启动 Helm Chart stable/minecraft 失败 Liveness Probe

Dockerfile, 如何安装 snap, snapd : unrecognized service

apache - 将 apache 设置为 nodejs 应用程序的别名?

tcp - 使用 SNMP 检查开放的 TCP/UDP 端口