美文网首页Docker的那些事儿
Docker的那些事儿—自定义bridge网络和默认bridge

Docker的那些事儿—自定义bridge网络和默认bridge

作者: sjyu_eadd | 来源:发表于2018-03-16 09:58 被阅读1次

    上一篇:Docker的那些事儿—使用自定义网络启动容器(24)


    通过前面几节的讲解,我们知道bridge网络使得处于相同网路下的容器间可以相互访问,对不同网络下的容器提供了网络隔离。那么默认bridge网络和自定义bridge网络是不是完全一样?当然不是。

    是否可以删除?

    自定义的bridge网络可以删除,默认bridge网络不可删除

    是否可以通过容器名通信

    默认bridge网络中所有容器间只能用IP相互访问。自定义bridge网络中所有容器除ip访问外,还可以直接用容器名作为hostname相互访问。原因在于Docker从1.10版本内嵌了了一个DNS服务,使得容器间可以直接通过容器名通信。

    启动4个容器:

    docker run -itd --name mysql1 --network=bridge mysql /bin/bash

    docker run -itd --name mysql2 --network=bridge mysql /bin/bash

    docker run -itd --name mysql3 --network=my_bridge mysql /bin/bash

    docker run -itd --name mysql4 --network=my_bridge mysql /bin/bash

    形成的网络拓扑为:

    使用默认bridge网络的容器间可以通过IP访问,不可以通过容器名访问。

    使用自定义bridge网络的容器间既可以通过ip访问,也可以通过容器名访问。

    docker run指定容器ip启动时仅适用于自定义网络

    docker run -itd --network bridge --name mysql5 --ip 172.17.0.10 mysql /bin/bash

    docker run -itd --network my_bridge --name mysql5 --ip 172.17.0.10 mysql /bin/bash

    docker run -itd --network my_bridge --name mysql6 --ip 172.18.0.10 mysql /bin/bash

    总结如下:

    1、自定义的bridge网络可以删除,默认bridge网络不可删除。

    2、默认bridge网络中所有容器间只能用IP相互访问。自定义bridge网络中所有容器除ip访问外,还可以直接用容器名作为hostname相互访问。

    3、docker run指定容器ip启动时仅适用于自定义网络。


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


    相关文章

      网友评论

        本文标题:Docker的那些事儿—自定义bridge网络和默认bridge

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