解决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