|
|
1
14
让我们把解决办法分成几部分。每个部分都试图让您了解解决方案,并相互关联。 码头集装箱网络
每当我们在不指定网络的情况下创建一个容器时,docker就会将其附加到默认的网桥网络。
According to this,
. 服务发现在默认网络中不可用。为了使服务发现正常工作,我们应该创建一个用户定义的网络,因为它提供隔离、DNS解析和
many more features.
creates its own bridge network. 它具有用户定义网络的所有属性。 默认情况下,这些网桥网络是不可连接的,但它们允许本地计算机中的docker容器连接到它们。 Docker swarm网络在 Docker swarm 和 swarm mode routing mesh 每当我们在没有指定外部网络的情况下向其部署服务时,它就会连接到入口网络。 指定外部覆盖网络时,可以注意到创建的覆盖网络将仅对管理器可用,而不在工作节点中,除非创建了服务并将其复制到该服务中。默认情况下,它们也不可附加,并且不允许swarm服务之外的其他容器连接到它们。因此,在将容器连接到swarm外部之前,不需要将网络声明为可连接。 码头工人因为没有 pre defined/official limit on no of worker/manager nodes ,您应该能够从第三个节点进行连接。一种可能性是该节点可以作为工作节点连接,但是如果覆盖网络不可连接,则可以尝试在该节点中部署受工作节点限制的容器。 而且,您不能直接在工作节点中部署服务。所有服务都部署在manager节点中,它负责根据提供的配置和模式复制和扩展服务。 防火墙如中所述 Getting started with swarm mode
这些端口应该被列为节点间通信的白名单。大多数防火墙需要重新加载一旦你做了改变。这可以通过将reload选项传递给防火墙来实现,并且在Linux发行版之间有所不同。
除了白名单上面的端口。您可能需要将docker0、docker\u gw\u bridge、br-123456 ip地址和网络掩码设置为16的白名单。否则服务发现将无法在同一主机上工作。i、 e如果您正在尝试连接到
Java
Docker服务发现
默认情况下,可以使用容器名称解析为服务。除此之外,还可以将服务解析为
解决方案mention the external network as defined here 同时对防火墙进行更改。
因为你没有提供第三台服务器的详细情况。我假设您正试图在那里部署一个容器,由于网络不可连接,docker overlay network拒绝了该容器。 |
|
|
2
2
您需要为服务创建一个网络,如下所示:
这个
|
|
|
3
2
我终于找到了答案。
我将compose文件的版本更新为“3.3”,因为根据文档,“endpoint\u mode:dnsrr”仅在版本3.3中可用。 有了这个改变,我就可以工作了。 感谢大家花时间来研究我的问题,试图解决它。 |
|
|
4
1
我的问题是docker网络入侵。我解决了这个开放端口在我的主机和专有网络。 https://docs.docker.com/network/overlay/#customize-the-docker_gwbridge-interface
|
|
|
laxantsu · Docker Swarm覆盖网络上的端口转发 8 年前 |
|
|
Robbert · Docker卷与nfs 8 年前 |
|
|
user1115980 · 群集问题 8 年前 |
|
|
user8116198 · Docker |装载卷导致错误 8 年前 |