Docker网络管理
一、Docker默认网络管理
1、docker在安装时会自动创建三种网络,现在我们通过网络管理指令进行查看,具体如下所示:
从图中可看出,docker中默认的三种网络分别为bridge、host和none,其中bridge就是默认的bridge驱动网络,也是默认的网络管理方式,配置后可以与宿主机通信从而实现与互联网通信,host和none属于无网络,容器添加到这两个网络时不可与外界通信。
2、使用一个示例进行演示bridge网络管理方式,开始创建并启动容器,查看是否创建成功,具体指令如下如所示:
从上图可以看出,指令在后台启动了一个镜像名称为ubuntu的容器,并为启动后的容器命名为networktest。
3、使用网络查看指令查看bridge网络详情,具体如下图所示:
二、自定义bridge网络
1、创建自定义网络,在docker主机上使用指令创建网络,指令创建一个基于bridge驱动的名称为isolated_nw的网络,创建完成后,使用下图第二条指令进行查看是否常见成功,具体如下图所示:
2、使用过自定义网络启动容器,具体如下图所示:
3、使用docker inspect nwtest(容器名)指令进行查看启动后的容器详情,来核查其网络管理方式,具体如下图所示:
从上图可看出,名为nwtest的容器使用的就是自定义的isolated_nw网络进行容器网络管理的。
4、除了isolated_nw一种网络管理方式之外,我们还可以继续为该容器添加其他管理方式,具体如下图所示:
执行完上述图中第一条指令,我们可以使用上图的第二条指令进行查看该容器的网络详情,具体如下所示:
5、断开容器网络连接并移除自定义网络,具体如下图所示:
三、容器之间的网络通信
1、创建两个使用默认的bridge网络的容器,容器名字此处我分别命名为container1和containrer2,具体如下所示:
2、创建一个使用自定义的isolated_nw网络的容器,容器名为container3,具体如下图所示:
3、为container2容器新增一个自定义的isolated_nw网络连接,这样container2就同时拥有了两种网络管理方式,具体如下图所示:
在这里进行查看三个容器的网络详情。具体如下:
4、容器地址查看,具体如下图所示:
3、容器通信测试,使用指令进入contaner1容器内部,使用Ping命令进行查看是否能够通信,同理,进入containr和conaine3容器内进行测试,具体如下所示:
从上图结果可知,不在同一个网络环境下的两个容器无法进行通信。
从上图可知,容器2分别于容器1和容器3进行通信测试,它们之间均可以进行通信。
从上面可得出结论:不同容器逐渐想要相互通信必须在同一个网络环境中;使用默认的bridg网络管理的容器可以使用ip进行通信,但无法使用容器名称进行通信;而使用自定义网络管理的容器则同时可以使用Ip和容器进行通信。
错误解析:最后一步进行容器名测试时出现错误,不管使用的是bridge默认网络管理还是使用自定义的网络管理管理通信测试都失败。
解决方案:此处我参考的是https://blog.csdn.net/qq_35547767/article/details/80611075,大家可以根据自己需要进行查看。