docker 容器互联

当你创建了多个容器后,你可以直接使用ip地址ping通,但是我们需要考虑一个情况

某个容器修改了ip,这样子的话其余连接该容器的容器都需要更换成新的ip地址。是不是很麻烦

这种时候我们需要一种技术,通过连接主机名,也就是容器名,我们就可以让容器之间互相连接。

1
2
3
启动容器的时候直接添加--link参数
docker run --link 容器名
ps:本质是在启动容器内的/etc/host下添加了映射

自定义网络

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker network ls #查看网络信息
docker network inspect 网络名 # 查看网络详细信息

#创建
docker network create --driver 模式 --subnet 子网 --gateway 网关 网络名称
eg:
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

#容器使用自己的网络创建容器
docker run --net 网络名
eg:
docker run -d -P --name tomcat-net-01 --net mynet tomcat

使用自定义网络之后在同一网段下我们可以直接使用容器名就可以实现容器互联

不同网段的容器互相连通

1
2
3
4
5
docker network connect 网络名 容器名
eg:
docker network connect mynet dea17f8117e0
我们可以使用命令查看对应的网络信息
docker network inspect mynet #查看mynet地下的容器信息

image-20210617191824008

如上图所示,我们将对应的容器直接加入到了对应的网络地下

这样子我们就做到了不同网段联通的情况