docker网络连接——docker network connect命令

博客作为学习笔记记录,若有理解或表述错误,欢迎指出

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

猜你喜欢

转载自blog.csdn.net/ksj367043706/article/details/88780985