2.1 KiB
2.1 KiB
容器互联
如果你之前有 Docker
使用经验,你可能已经习惯了使用 --link
参数来使容器互联。
随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器。
容器的连接(linking)系统是除了端口映射外,另一种跟容器中应用交互的方式。
该系统会在源和接收容器之间创建一个隧道,接收容器可以看到源容器指定的信息。
新建网络
下面先创建一个新的 Docker 网络。
$ docker network create -d bridge my-net
连接容器
创建一个容器并连接到新建的 my-net
网络
$ docker run -it --rm --name busybox1 --net my-net busybox sh
打开新的终端,再新建一个容器,加入 my-net
网络
$ docker run -it --rm --name busybox2 --net my-net busybox sh
再打开一个新的终端查看容器信息
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b47060aca56b busybox "sh" 11 minutes ago Up 11 minutes busybox2
8720575823ec busybox "sh" 16 minutes ago Up 16 minutes busybox1
下面通过 ping
来证明 busybox1
容器和 busybox2
容器建立了互联关系。
在 busybox1
容器输入以下命令
/ # ping busybox2
PING busybox2 (172.19.0.3): 56 data bytes
64 bytes from 172.19.0.3: seq=0 ttl=64 time=0.072 ms
64 bytes from 172.19.0.3: seq=1 ttl=64 time=0.118 ms
用 ping 来测试连接 busybox2
容器,它会解析成 172.19.0.3。
同理在 busybox2
容器执行 ping busybox1
,也会成功连接到。
/ # ping busybox1
PING busybox1 (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: seq=0 ttl=64 time=0.064 ms
64 bytes from 172.19.0.2: seq=1 ttl=64 time=0.143 ms
这样,busybox1
容器和 busybox2
容器建立了互联关系。
Docker Compose
如果你有多个容器之间需要互相连接,推荐使用 Docker Compose。