本文简单介绍两种, 一种
link
, 另外一种network
link
# 在终端A中, 创建容器 box1
# docker run -it --name box1 alpine:3.7
# 在终端B中, 创建容器 box2
# docker run -it --name box2 --link="box1:box1" alpine:3.7
# 在终端A里执行命令
# ping box2 -c 3
ping: bad address 'box2'
# 在终端B里执行命令
# ping box1 -c 3
PING box1 (172.17.0.2): 56 data bytes
64 bytes from 172.17.0.2: seq=0 ttl=64 time=0.089 ms
64 bytes from 172.17.0.2: seq=1 ttl=64 time=0.152 ms
64 bytes from 172.17.0.2: seq=2 ttl=64 time=0.160 ms
......
box2
能ping box1
, box1
不能ping box2
network
# 新建名为 my-net 的网络 (-d 参数指定 Docker 网络类型, 有 bridge overlay)
# docker network create -d bridge my-net
# 在终端A中, 创建容器 box1
docker run -it --name box1 --network my-net alpine:3.7
# 在终端B中, 创建容器 box2
docker run -it --name box2 --network my-net alpine:3.7
# 在终端A里执行命令
# ping box2 -c 3
PING box2 (172.18.0.3): 56 data bytes
64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.039 ms
64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.167 ms
64 bytes from 172.18.0.3: seq=2 ttl=64 time=0.064 ms
......
# 在终端B里执行命令
# ping box1 -c 3
PING box1 (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: seq=0 ttl=64 time=0.059 ms
64 bytes from 172.18.0.2: seq=1 ttl=64 time=0.168 ms
64 bytes from 172.18.0.2: seq=2 ttl=64 time=0.108 ms
......
容器 box1
与 容器 box2
建立了互联
注: 如果你有多个容器之间需要互相连接, 推荐使用 Docker Compose