Docker:从同一主机中的另一个容器访问mysql容器(无路由到主机错误)

时间:2017-10-04 20:34:12

标签: mysql linux docker iptables

我有一台带有此IP的虚拟机:10.23.23.23 在此VM上,Docker正在运行,并创建了2个容器:

  • Container1(Apache正在运行):此容器公开端口13080并将容器内的apache端口80包装起来
  • Container2(mysql):此容器公开端口5555并绑定容器内mysql的端口3306

在Container1中,我正在尝试访问container2,但是我收到以下错误:SQLSTATE[HY000] [2002] No route to host

注意:

VM主机上的以下命令:

ip addr show docker0

返回:

3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 02:42:cf:7e:ea:b7 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::41:cfff:fe7e:eab7/64 scope link
       valid_lft forever preferred_lft forever

如何才能加入第一个容器(mysql)?

1 个答案:

答案 0 :(得分:0)

这似乎是IP:PORT暴露问题。如果你想使用主机IP引用容器,请确保mysql正在监听容器中的所有IP,即0.0.0.0,然后尝试使用主机端口。

通常,当容器中的服务在localhost/127.0.0.1运行时会出现这些问题。