美文网首页Docker的那些事儿
Docker的那些事儿—容器间的通信方式(26)

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

作者: sjyu_eadd | 来源:发表于2018-03-17 09:27 被阅读5次

    上一篇: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)


    相关文章

      网友评论

        本文标题:Docker的那些事儿—容器间的通信方式(26)

        本文链接:https://www.haomeiwen.com/subject/kavcqftx.html