多克尔:在相同的主机从另一个容器访问到MySQL容器(没有到主机的路由错误)
问题描述:
我有一个虚拟机与该IP:10.23.23.23
在这个VM,多克尔运行和2升的容器被创建:多克尔:在相同的主机从另一个容器访问到MySQL容器(没有到主机的路由错误)
-
Container1(正在运行Apache):此容器暴露端口
13080
和Bin的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)?
答
这似乎是IP:PORT
揭露问题。如果您想使用主机IP来引用容器,请确保mysql正在监听容器中的所有IP,即0.0.0.0
,然后尝试使用主机端口。
通常,当容器中的服务在localhost/127.0.0.1
上运行时,会发生这些问题。
请包括用于启动每个容器的命令/ config,以及您在container1中使用的主机名/端口以访问container2。 – BMitch
Stack Overflow是编程和开发问题的网站。这个问题似乎是无关紧要的,因为它不是关于编程或开发。请参阅帮助中心的[我可以询问哪些主题](http://stackoverflow.com/help/on-topic)。也许[超级用户](http://superuser.com/)或[Unix&Linux堆栈交换](http://unix.stackexchange.com/)会是一个更好的地方。 – jww