# 首先查看当前存在同一个网络中mybusy mybusy02 两个容器
$root@VM-8-11-ubuntu:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3c08d592537a busybox “sh” 8 minutes ago Up 8 minutes mybusy02
180fbc8b0462 busybox “sh” 8 minutes ago Up 8 minutes mybusy
# 创建一个在默认网络中的 mybusy03
$root@VM-8-11-ubuntu:~# docker run -it –name mybusy03 -d busybox
a95b57c96f400ed44efffcc938bccce15830fa1ab5b55716261e4588c14429cb
# 查看当前的容器
$root@VM-8-11-ubuntu:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a95b57c96f40 busybox “sh” 21 seconds ago Up 21 seconds mybusy03
3c08d592537a busybox “sh” 8 minutes ago Up 8 minutes mybusy02
180fbc8b0462 busybox “sh” 9 minutes ago Up 9 minutes mybusy
# 尝试从 mybusy ping mybusy03 发现是ping 不通的 因为不在同一网端中
$root@VM-8-11-ubuntu:~# docker exec -it mybusy ping mybusy03
ping: bad address mybusy03
# 这时我们查看docker network connect –help 命令查看
$root@VM-8-11-ubuntu:~# docker network connect –help
Usage: docker network connect [OPTIONS] NETWORK CONTAINER
Connect a container to a network
Options:
–alias strings Add network-scoped alias for the container
–driver-opt strings driver options for the network
–ip string IPv4 address (e.g., 172.30.100.104)
–ip6 string IPv6 address (e.g., 2001:db8::33)
–link list Add link to another container
–link-local-ip strings Add a link-local address for the container
# 将mybusy03 加入到 my-net 网络中
$root@VM-8-11-ubuntu:~# docker network connect my-net mybusy03
# 这时我们再 ping 发现通了。是不是很神奇
$root@VM-8-11-ubuntu:~# docker exec -it mybusy ping mybusy03
PING mybusy03 (192.168.0.4): 56 data bytes
64 bytes from 192.168.0.4: seq=0 ttl=64 time=0.197 ms
64 bytes from 192.168.0.4: seq=1 ttl=64 time=0.087 ms