Docker 游泳模式 - --advertise-addr 和 --listen-addr 有什么区别?

Docker swam mode - What's the difference between --advertise-addr and --listen-addr?

我是集群的新手。我看不出这两个选项之间的区别?我认为 advertise addr 被其他节点用来相互通信,而 listen addr 被主机用来加入集群。所以我认为这两个地址将永远相同。我说得对吗?

你是对的,listen addr 是守护进程将接受连接的地址,即。 0.0.0.0:<port> 表示可以从所有可能的 ip 地址访问守护进程。而 192.168.1.1:<port> 表示守护进程将只接受该特定接口上的连接。

--listen-addr 保留为默认值 0.0.0.0:2377 告诉它在所有接口上侦听请求。如果您的节点上有与 public 网络分开的管理网络之类的东西,您可以使用它来限制 Swarm 仅侦听特定接口。

--advertise-addr 是分配给 Swarm 中其他节点用于建立连接的地址,需要是每个人都可以解析和到达的地址。

请注意,1.12 的早期 RC 没有 --advertise-addr,因此您可能会发现一些指示应使用 --listen-addr 的说明。我会忽略这些并仅使用 --advertise-addr 除非你有特定的用例。