【问题标题】:Docker: Accessing to a mysql container from another container in same host (No route to host error)Docker:从同一主机中的另一个容器访问 mysql 容器(无路由到主机错误)
【发布时间】:2017-10-05 04:48:37
【问题描述】:

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

  • Container1 (Apache running) : 这个容器暴露了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 中使用的主机名/端口来访问容器 2。
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。

标签: mysql linux docker iptables


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    相关资源
    最近更新 更多