docker network connect 命令是用于将docker容器连接到某个网络中,或者与其他容器建联,容器可以使用容器名或者容器ID。
用法
docker network connect [OPTIONS] NETWORK CONTAINER
选项
名称,简写 | 默认 | 说明 |
---|---|---|
--alias | 为容器添加网络范围的别名 | |
--ip | 指定IP地址 | |
--ip6 | 指定IPv6地址 | |
--link | 添加链接到另一个容器 | |
--link-local-ip | 添加容器的链接本地地址 |
相关命令
命令名称 | 说明 |
---|---|
docker network connect | 将容器连接到网络 |
docker network create | 创建一个网络 |
docker network disconnect | 断开容器的网络 |
docker network inspect | 显示一个或多个网络的详细信息 |
docker network ls | 列出网络 |
docker network prune | 删除所有未使用的网络 |
docker network rm | 删除一个或多个网络 |
举几个栗子:
1. 将运行中的容器ctn1 连接/断连 到网络net1中,
$ docker network connect net1 ctn1
or
$ docker network disconnect net1 ctn1
2. 在启动容器ctn1时,连接到网络net1上,
$ docker run -itd --network=net1 ctn1
3. 给容器分配指定ip(192.168.10.10)
$ docker network connect --ip 192.168.10.10 net1 ctn1
4. 使用--link实现两个容器互连
--link:在启动my-ctn2容器时,建立my-ctn1和my-ctn2容器间的连接,此时会在my-ctn2容器的/etc/hosts中添加域名解析。并且当容器IP变化时,docker会自动维护映射关系
$ docker network connect --link my-ctn1 my-ctn2
#在my-ctn2中
#cat /etc/hosts
127.0.0.1
localhost
172.17.0.5
my-ctn1
5. --alias:为容器在网络范围内添加一个别名。
在网络范围内添加别名是什么意思呢?下面我们通过一个栗子来看看它的用法:
# 运行container6容器,并给container6添加一个scoped-app的别名
docker run --net=mynet -itd --name=container6 --net-alias app busybox
docker network connect --alias scoped-app local_alias container6
# 运行container7容器,同样给container7添加一个scoped-app的别名
docker run --net=isolated_nw -itd --name=container7 --net-alias app busybox
docker network connect --alias scoped-app local_alias container7
# 这时再从另外一个容器中查看效果
# 在container4中
docker exec -it container4 sh
ping app # 访问container6的IP
exit
docker stop container6
docker exec -it container4 sh
ping app # 访问的container7的IP
可以看到,对多个容器添加网络范围内别名时,一定程度上可以实现网络HA功能。
6. 创建网络,并指定subnet和ip范围
$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 multi-host-network
REF:
https://www.yiibai.com/docker/network_connect.html
https://blog.csdn.net/gezhonglei2007/article/details/51627821