我在一个Ubuntu服务器中,安装了Docker,并且创建了一个跑Node.js应用的Docker,宿主机上安装了一个MySQL,但是在我Node应用的Docker里面通过 127.0.0.1::3306 并不能连接到宿主机上的MySQL,请问大神如何才能解决。
试过MySQL也放在一个docker容器里面运行,但是这样的话好像docker也必须要使用服务器的公网ip:3306连接,况且我的Nodejs应用启动时要先依赖MySQL启动了才能连接,不知如何才是好的解决方案。
我在一个Ubuntu服务器中,安装了Docker,并且创建了一个跑Node.js应用的Docker,宿主机上安装了一个MySQL,但是在我Node应用的Docker里面通过 127.0.0.1::3306 并不能连接到宿主机上的MySQL,请问大神如何才能解决。
试过MySQL也放在一个docker容器里面运行,但是这样的话好像docker也必须要使用服务器的公网ip:3306连接,况且我的Nodejs应用启动时要先依赖MySQL启动了才能连接,不知如何才是好的解决方案。
2 回答967 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
5 回答1.5k 阅读
5 回答2.3k 阅读
1 回答2.1k 阅读✓ 已解决
2 回答2.2k 阅读
每个docker容器都有自己的ip,一般docker的ip是以172.17.0.x这样的形式分配的。
你的宿主机也是有ip地址的。你在docker里面写127.0.0.1是有问题的,那只会指向你自己的docker本机。
正确的做法是,写成宿主机的ip地址就可以了。
欢迎加Q群交流讨论Java技术:696883318