解决Docker容器内部无法连接到宿主机应用的问题

本文解决Docker容器内应用程序无法连接宿主机Es服务的问题,通过修改配置文件中的host为eth0上的IP地址,成功实现容器与宿主机的通信。同时提供额外解决方案链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值