docker container 端口无法访问

  docker容器端口已经映射到宿主机端口情况下,局域网机器却不能ping通,或者局域网能ping通,容器ping到宿主机却不通。
尝试方法:

两种防火墙(firewalld.service或iptables)打开或者关闭的时候都试过,问题未完全解决;
防火墙开启后,部分容器在局域网能ping通,部分容器局域网却不能ping通;
防火墙关闭后,部分容器在局域网能ping通,部分容器局域网却不能ping通,刚好跟上面的情况相反;
经过测试,偶然机会下发现创建多个Network Intance

[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
f48432fd385f bridge bridge local
c3c9a16784be host host local
dd5b7a67a6e3 net888 bridge local
6ce943ed9ec0 net999 bridge local
55f0e14cfa51 none null local
c005b7ce16e8 staticnet bridge local

  因为需要设置容器的固定ip,’staticnet’自己创建的网络模式,经常使用的是’staticnet’网络模式,多次创建容器然后再创建其他容器,上面多次开启关闭防火墙测试的也是这个网络模式下的容器;可能是这个模式下使用同个ip创建容器或者防火墙配置哪里出问题了,导致局域网其他电脑不能ping通该容器,或者该容器不能连接局域网,经过很久百度都没解决问题,偶然机会下,发现创建新的网络模式下,用新的网络模式创建的容器却没有上面的问题。

  后面测试就创建了其它bridge网络模式’net888’、’net999’,在该网络模式下创建的容器经过测试,防火墙开启后,容器都能连接到宿主机,局域网也能连接到容器中;具体原因虽然不知道,但好歹有解决方法了。