当启用firewalld / iptables时,docker容器在同一主机上与容器通信的问题

这是我的configuration:

  • 主机虚拟机是CentOS 7.1
  • Docker版本是1.8.1
  • 容器1 – >显示端口8071并运行Web服务
  • 容器2 – >显示端口8081并运行前端Web应用程序
  • firewalld已启用并正在运行

以下的工作 – (假设主机centos VM的IP地址是10.7.42.182)

  • 当从客户机上的浏览器访问时, http://10.7.42.182:8071/确实连接到容器1中的Web服务

  • 当从客户端机器上的浏览器访问时, http://10.7.42.182:8081/确实连接到容器2中的web应用程序

  • 当我从容器2内部ping 10.7.42.182

  • 容器1的IP地址是172.17.0.1。 当我从内部容器2 ping到172.17.0.1

  • 当我从容器2中访问http://172.17.0.1:8071/时

以下不起作用 –

  • 当我从容器2中访问http://10.7.42.182:8071/时

http://10.7.42.182:8071可以从我的客户端访问,但不能从另一个容器在同一主机上运行!

当我closuresfirewalld然后开始工作。

firewalld是如何在这里造成问题的? 即允许从外部连接而不是在容器内连接?

希望对可能发生的事情有任何提示。