根据this链接:
以下端口必须可用。在某些系统上,这些端口 默认情况下处于打开状态。
用于群集管理通信的TCP端口2377 TCP和UDP端口 7946用于节点之间的通信UDP端口4789用于覆盖网络 流量如果您计划使用加密创建覆盖网络 (--opt加密),还需要确保ip协议50(ESP) 允许流量
但是我能够创建一个群集并将其加入节点,而无需在端口上方打开,而且我认为默认情况下它们在我的网络上是打开的。因此,我试图了解上述文档是否不正确?
$.when($("span").fadeIn()).done(function() {
$.when($("span").fadeOut()).done(function() {
alert("done!")
});
});
答案 0 :(得分:2)
2377 / tcp必须在节点之间打开(这并不意味着对外部流量开放)才能达到目的。如果您在重叠式网络方面遇到问题,例如容器无法彼此连接或访问入口发布的端口,仅当您访问容器恰巧正在运行的同一节点时,该容器才起作用,那么问题很可能是其他端口未打开。
答案 1 :(得分:1)
该问题的答案是是。 docker需要这些端口才能工作。我们可以通过在节点上运行netstat -tuplen
来查看正在使用哪些端口,以进行验证。
例如,在主节点上,我看到以下内容:
$ netstat -tuplen
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 15135221 -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 25361290 -
tcp6 0 0 :::2377 :::* LISTEN 0 1423965 -
tcp6 0 0 :::7946 :::* LISTEN 0 1423980 -
tcp6 0 0 :::22 :::* LISTEN 0 25361301 -
udp 0 0 127.0.0.53:53 0.0.0.0:* 101 15135220 -
udp 0 0 10.2.0.4:68 0.0.0.0:* 100 15135187 -
udp 0 0 0.0.0.0:4789 0.0.0.0:* 0 1424168 -
udp6 0 0 :::7946 :::* 0 1423981 -
在一个工作节点上,我看到了:
$ netstat -tuplen
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 101 234169 -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 8088243 -
tcp6 0 0 :::7946 :::* LISTEN 0 61278 -
tcp6 0 0 :::22 :::* LISTEN 0 8088254 -
udp 0 0 127.0.0.53:53 0.0.0.0:* 101 234168 -
udp 0 0 10.2.0.7:68 0.0.0.0:* 100 234114 -
udp 0 0 0.0.0.0:4789 0.0.0.0:* 0 61504 -
udp6 0 0 :::7946 :::* 0 61279 -
此外:即使我在下面的配置中拒绝以天蓝色拒绝所有入站网络流量,它还是可以正常工作