解决Docker容器内部无法连接到宿主机应用的问题
Docker中运行了应用程序,应用程序去访问127.0.0.1的宿主机中的Es,通过docker logs 命令查看,发现错误:

明明在不在docker里运行时都是正常的,丢到docker里就出了问题,难道容器里的127.0.0.1不是指向宿主机的吗?

通过命令ifconfig可以知道原来docker跑在172.17.0.1这个内网ip上,也就是127.0.0.1指向的其实是172.17.0.1这个鸟东西,而es跑在eth0的主机上.

ok开始修改程序将程序内的配置文件host改为:eth0上的ip,然后重新build dockerfile,docker run,访问程序,ok 连接超时的问题没了,成功连接到了主机的es。
还可以参考其他办法:
https://nickjanetakis.com/blog/docker-tip-35-connect-to-a-database-running-on-your-docker-host
本文解决Docker容器内应用程序无法连接宿主机Es服务的问题,通过修改配置文件中的host为eth0上的IP地址,成功实现容器与宿主机的通信。同时提供额外解决方案链接。
5563

被折叠的 条评论
为什么被折叠?



