Docker的那些事儿

Docker的那些事儿—容器间的通信方式(26)

2018-03-17  本文已影响5人  sjyu_eadd

上一篇:Docker的那些事儿—自定义bridge网络和默认bridge网络比较(25)


前面在学习bridge网络和自定义网络时,我们了解了同一网络中容器间可以相互通信。不同网络间容器是相互隔离。那么容器间的通信方式有哪些?

通过IP地址方式通信

容器间IP方式通信是最简单的,但是由于容器的IP并不是固定不变的。比如容器stop后,又重新start起来后,IP可能发生变化(容器stop后,ip会被释放,可能被其他容器使用了),所以通过IP进行通信就显得不太灵活了。

通过容器名方式通信

Docker从1.10版本内嵌了一个DNS服务,使得容器间可以直接通过容器名通信。需要注意的是该通信方式仅适用于自定义的网络。

上述两种方式,前面我们已经演示过。

通过container模式的方式通信

这要求容器启动时指定使用已经存在的容器的网络:--network=container:NAMEor ID

docker run -itd --name mysql5 --network=container:mysql1 mysql /bin/bash

container模式启动容器方式后,容器mysql5共享mysql1的network namespace。我们看到docker exec mysql5进入的是容器mysql1内部。

此时的网络拓扑如下:

container模式存在如下特点:

1、两个容器间通过127.0.0.1可以实现高效快速通信。

2、可能存在端口冲突情况。


下一篇:Docker的那些事儿—容器与外部网络的连通(27)


上一篇 下一篇

猜你喜欢

热点阅读