容器互联
如果你之前有 Docker 使用经验,你可能已经习惯了使用 --link 参数来使容器互联。
随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器,而不是使用 --link 参数。

新建网络

下面先创建一个新的 Docker 网络。
1
$ docker network create -d bridge my-net
Copied!
-d 参数指定 Docker 网络类型,有 bridge overlay。其中 overlay 网络类型用于 Swarm mode,在本小节中你可以忽略它。

连接容器

运行一个容器并连接到新建的 my-net 网络
1
$ docker run -it --rm --name busybox1 --network my-net busybox sh
Copied!
打开新的终端,再运行一个容器并加入到 my-net 网络
1
$ docker run -it --rm --name busybox2 --network my-net busybox sh
Copied!
再打开一个新的终端查看容器信息
1
$ docker container ls
2
3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4
b47060aca56b busybox "sh" 11 minutes ago Up 11 minutes busybox2
5
8720575823ec busybox "sh" 16 minutes ago Up 16 minutes busybox1
Copied!
下面通过 ping 来证明 busybox1 容器和 busybox2 容器建立了互联关系。
busybox1 容器输入以下命令
1
/ # ping busybox2
2
PING busybox2 (172.19.0.3): 56 data bytes
3
64 bytes from 172.19.0.3: seq=0 ttl=64 time=0.072 ms
4
64 bytes from 172.19.0.3: seq=1 ttl=64 time=0.118 ms
Copied!
用 ping 来测试连接 busybox2 容器,它会解析成 172.19.0.3
同理在 busybox2 容器执行 ping busybox1,也会成功连接到。
1
/ # ping busybox1
2
PING busybox1 (172.19.0.2): 56 data bytes
3
64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.064 ms
4
64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.143 ms
Copied!
这样,busybox1 容器和 busybox2 容器建立了互联关系。

Docker Compose

如果你有多个容器之间需要互相连接,推荐使用 Docker Compose
Last modified 9mo ago