如何让一台宿主机内不同docker容器互访 | 为什么会有这么魔鬼的设定啊(╯‵□′)╯︵┻━┻

docker默认是不允许容器互访的,想让他们互访需要一个叫做bridge的东西。

先看一下都有什么网络:

docker network ls

下面新建一个出来:

docker network create subnet 

这个新建的网络就叫subnet了,可能有的同学会问了:“啊,老师老师,那不是有一个bridge了吗,为什么还有新建一个呢?”

因为docker不让我们用默认的。。。

下面就是把容器接进这个子网,命令的格式为:

docker run -it --name 容器名 --network 网络名(subnet啦) --network-alias 网络别名 镜像名

有点复杂是吧 我举个栗子:

docker run -it --name my_ubuntu --network subnet --network-alias my_ubuntu 
--gpus all -p 5000:5000 ubuntu_for_server:v1.0 

另外一个容器是:

docker run -it --name my_ubuntu2 --network subnet --network-alias my_ubuntu2 
--gpus all -p 5001:5001 ubuntu_for_server2:v1.0 

这样就把两个容器都打开了,这个时候你可以用ping my_ubuntu去测试能不能连通第一个容器。

还有就是比如需要在代码里面调用第一个容器的flask服务,那么可以http://my_ubuntu:5000/api/xxxxx这样去调用啦 那个网络别名当做ip来用,很方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值