Docker的那些事儿

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

2018-03-15  本文已影响3人  sjyu_eadd

上一篇:Docker的那些事儿—如何自定义网络(23)


下面使用新创建的my_bridge网络启动容器,并检查网络连通性。

新创建的my_bridge网络信息如下:

指定使用my_bridge网络启动容器mysql3

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

docker network inspect my_bridge查询Containers参数如下:

结合前面的容器mysql1和mysql2,整个网络拓扑如下:

在mysql3中ping mysql1和mysql2不通

在mysql1中ping mysql3也不通

这说明处于不同网络中的容器彼此间网络不通,这也印证了容器的网络隔离性。那么不同网络中的容器如何访问呢?

答案:docker network connect

例如:docker network connect my_bridge mysql2

my_bridge网络中增加了容器mysql2。我们进一步查询容器mysql2应用的网络:docker container inspect mysql2

可见容器mysql2使用了两个网络bridge和my_bridge。此时网络拓扑变为:

容器名        容器主机名        使用的网络    绑定的ip

mysql1        9336ebf764fd    bridge            172.17.0.2

mysql2        12df3e56ea67  bridge            172.17.0.3

                                              my_bridge    172.18.0.3

mysql3        6b1fd1b2b253    my_bridge    172.18.0.2

此时在检查容器间是否可以连通。

mysql2内可以ping通mysql3

mysql3内可以ping通mysql2

docker network disconnect提供使得容器从网络中断开的功能。

docker network disconnect my_bridge mysql2后网络拓扑重新变为如下:


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


上一篇下一篇

猜你喜欢

热点阅读