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来用,很方便。