在docker覆盖网络中使用领事在容器之间通信时无法访问目标主机

在docker覆盖网络中使用领事在容器之间通信时无法访问目标主机,docker,consul,docker-networking,Docker,Consul,Docker Networking,我在centos 7中使用docker 17.03版本 内核版本-3.10.0-514.10.2.el7.x86_64 Client: Version: 17.03.0-ce API version: 1.26 Go version: go1.7.5 Git commit: 3a232c8 Built: Tue Feb 28 08:10:07 2017 OS/Arch: linux/amd64 Server: Version:

我在centos 7中使用docker 17.03版本

内核版本-3.10.0-514.10.2.el7.x86_64

Client:
 Version:      17.03.0-ce
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 08:10:07 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.0-ce
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   3a232c8
 Built:        Tue Feb 28 08:10:07 2017
 OS/Arch:      linux/amd64
 Experimental: false
我有用于docker多主机网络的node-0和node-1,我使用的是Concur。在node-0中,我使用以下命令创建了一个领事容器

docker run -d -p 8500:8500 -h consul --name consul progrium/consul -server -bootstrap
然后,我在/etc/systemd/system/docker.service.d中创建了一个插入式文件,并添加了以下行

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=consul://<NODE-0-PRIVATE-IP>:8500/network --cluster-advertise=<NODE0-IP>:2375"
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --cluster-store=consul://<NODE-0-PRIVATE-IP>:8500/network --cluster-advertise=<NODE1-IP>:2375"
在container2内部,我试图ping container1,但得到以下响应

PING container1 (10.10.10.3) 56(84) bytes of data.
From container2 (10.10.10.4) icmp_seq=1 Destination Host Unreachable
From container2 (10.10.10.4) icmp_seq=2 Destination Host Unreachable
From container2 (10.10.10.4) icmp_seq=3 Destination Host Unreachable
From container2 (10.10.10.4) icmp_seq=4 Destination Host Unreachable
从节点0开始,
ip a
显示

 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:50:56:9d:9c:9f brd ff:ff:ff:ff:ff:ff
        inet <NODE0-PRIVATE-IP>/24 brd 192.168.5.255 scope global ens32
           valid_lft forever preferred_lft forever
        inet6 fe80::250:56ff:fe9d:9c9f/64 scope link
           valid_lft forever preferred_lft forever
    3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
        link/ether 02:42:57:6d:e8:a9 brd ff:ff:ff:ff:ff:ff
        inet 172.17.0.1/16 scope global docker0
           valid_lft forever preferred_lft forever
        inet6 fe80::42:57ff:fe6d:e8a9/64 scope link
           valid_lft forever preferred_lft forever
    4: docker_gwbridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
        link/ether 02:42:10:5b:7d:b5 brd ff:ff:ff:ff:ff:ff
        inet 172.19.0.1/16 scope global docker_gwbridge
           valid_lft forever preferred_lft forever
        inet6 fe80::42:10ff:fe5b:7db5/64 scope link

我需要改变什么才能得到这份工作吗?提前感谢。

我在CentOS7上安装了docker 18.09.1,我无法从docker主机ping远程主机,ping时我正在获取docker\u gwbridge的IP,网络,由docker配置 搜索并找到本文,运行下面的命令并能够ping远程主机

docker network rm docker_gwbridge
也许试着离开蜂群,试着

docker swarm leave -f

您在两台主机之间的防火墙上打开了哪些端口?请包括集装箱1/2的docker运行命令。docker network在每个节点上检查我的网络输出的是什么?Gwbridge用于docker network之外的请求。OP正在尝试在覆盖网络的两个节点之间进行通信,该覆盖网络的实现没有swarm模式。根据您的编辑:正如我在评论中提到的,OP没有使用swarm模式。我甚至不确定它在被问到这个问题时是否存在,但swarm模式与其他覆盖式网络关键/价值商店(如Concur)不兼容。所以离开蜂群是行不通的。
docker network rm docker_gwbridge
docker swarm leave -f