在相同的demo网络下容器之间无法ping通name,ip
来源:7-5 集群服务间通信之Routing Mesh
 
			男人花
2021-04-20
环境centos7
docker:Docker version 20.10.5
1.已添加节点如集群
ID                            HOSTNAME    STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
pdyumk35v7eit9onqpz0z8yo5 *   imooc       Ready     Active         Leader           20.10.5
skbxpln3lq4152j7k7kydj2x3     imooc-197   Ready     Active                          20.10.5
lxt0ro2lpio3gxjlobq4bkojv     imooc-198   Ready     Active                          20.10.5
2创建网络
[root@imooc ~]# docker network ls
NETWORK ID     NAME                  DRIVER    SCOPE
545b2cfa42ab   bridge                bridge    local
tnb2ysbk7zjc   demo                  overlay   swarm
808e45a15949   docker-yapi_default   bridge    local
32f35e034a60   docker_gwbridge       bridge    local
05fde109d316   host                  host      local
rg55aremdea5   ingress               overlay   swarm
f58cf5271285   none                  null      local
3uoqb0k44s3a   over_demo             overlay   swarm
- 创建容器
docker service create --name client -d --network demo centos sh -c "while true; do sleep 3600; done"
docker service create --name whoami -p 8000:8000 --network demo -d jwilder/whoami
4.docker service详情
[root@imooc ~]# docker service ls
ID             NAME      MODE         REPLICAS   IMAGE                   PORTS
yy38cr3obbor   client    replicated   1/1        centos:latest           
wk75f606xxha   whoami    replicated   1/1        jwilder/whoami:latest   *:8000->8000/tcp
[root@imooc ~]# docker service ps client whoami
ID             NAME       IMAGE                   NODE        DESIRED STATE   CURRENT STATE            ERROR     PORTS
jegn9pbhp7vx   client.1   centos:latest           imooc-197   Running         Running 12 minutes ago             
jnt5qk21yf9f   whoami.1   jwilder/whoami:latest   imooc       Running         Running 12 minutes ago      
5.docker network inspect tnb2ysbk7zjc(demo网络id)
"Containers": {
            "06c2d73d4f3dce2176f3ff97d2b7cbbbed452c1c83bbf44c015f72b8655e8bfc": {
                "Name": "whoami.1.jnt5qk21yf9fomx7gbdr70xwe",
                "EndpointID": "ec76896da86946edc8f10bec2390f5c975481739d78f38bf467d6aaa255a547d",
                "MacAddress": "02:42:0a:00:02:03",
                "IPv4Address": "10.0.2.3/24",
                "IPv6Address": ""
            },
            "lb-demo": {
                "Name": "demo-endpoint",
                "EndpointID": "6aa73c022f4b22ba199c3a6846576e98a83ede5d7649a01cc5a394e4343c1512",
                "MacAddress": "02:42:0a:00:02:04",
                "IPv4Address": "10.0.2.4/24",
                "IPv6Address": ""
            }
        },
6.进入whoami后ping client无效,ping client ip无效,ping dome网络连通
/app # ping 10.0.2.4
PING 10.0.2.4 (10.0.2.4): 56 data bytes
64 bytes from 10.0.2.4: seq=0 ttl=64 time=0.298 ms
64 bytes from 10.0.2.4: seq=1 ttl=64 time=0.074 ms
64 bytes from 10.0.2.4: seq=2 ttl=64 time=0.077 ms
^C
--- 10.0.2.4 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.074/0.149/0.298 ms
/app # ping client
ping: bad address 'client'
/app # ping 10.0.2.6
PING 10.0.2.6 (10.0.2.6): 56 data bytes
^C
--- 10.0.2.6 ping statistics ---
85 packets transmitted, 0 packets received, 100% packet loss
3回答
- 
				  麦兜搞IT 2021-04-22 按照docker swarm的文档说法 TCP and UDP port 7946 for communication among nodes (container network discovery). 多个节点之间网络发现用 00
- 
				  男人花 提问者 2021-04-20 按照自己的想法,猜测是防火墙问题,然后使用netstat -nltp,把两台机器上未开放策略的7946端口打开,ok了,但是不清楚7946端口具体服务的作用是啥?求老师解答 tcp6 0 0 :::8000 :::* LISTEN 1076/dockerd tcp6 0 0 :::2377 :::* LISTEN 1076/dockerd tcp6 0 0 :::7946 :::* LISTEN 1076/dockerd ----------------------------------------------------------------------------------- [root@f3db82155201 /]# ping whoami PING whoami (10.0.2.2) 56(84) bytes of data. 64 bytes from 10.0.2.2 (10.0.2.2): icmp_seq=1 ttl=64 time=0.422 ms 64 bytes from 10.0.2.2 (10.0.2.2): icmp_seq=2 ttl=64 time=0.030 ms 64 bytes from 10.0.2.2 (10.0.2.2): icmp_seq=3 ttl=64 time=0.056 ms 64 bytes from 10.0.2.2 (10.0.2.2): icmp_seq=2 ttl=64 time=0.030 ms 64 bytes from 10.0.2.2 (10.0.2.2): icmp_seq=3 ttl=64 time=0.056 ms /app # ping client PING client (10.0.2.5): 56 data bytes 64 bytes from 10.0.2.5: seq=0 ttl=64 time=0.075 ms 64 bytes from 10.0.2.5: seq=1 ttl=64 time=0.070 ms 00
- 
				  男人花 提问者 2021-04-20 这里的环境搭建是centos7镜像,使用VMware链接克隆出三台虚拟机,进行实验。 00
相似问题
