docker容器通过宿主机ip中转实现容器之间相互调用

一般每个容器,都会映射一个端口到宿主机中,方便在宿主机上访问,例如ngnix,mysql,redis等等。

但是我们有一种常见的场景,就是a容器,需要通过宿主机的端口映射,调用b容器的服务,这里如果在a容器内部配置localhost/127.0.0.1/0.0.0.0:port都是不会起作用的,因为容器和容器之间的ip是隔离的,无法互相通过本地端口访问。

一个办法就是在docker run中把宿主机的端口映射到容器中,但是这样最痛苦的地方就是,每当我在容器中想多添加一个服务,那就得重新run。

个人认为更好的办法,是获取宿主机的ip, 然后在容器内部配置宿主机的ip, 就可以访问到b容器的服务。参考这里其实在docker run中指定环境变量的办法也不错,不过在docker公服下载的时候,往往都是直接拷贝现成run命令)得到方法:

/sbin/ip route|awk ‘/default/ { print $3 }’

得到的宿主机ip, 加上对应的端口,就可以访问其他容器的服务了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值