Docker——网络通信(五)(5)

经过上述操作,将Tomcat01加入到tomcat-net中后,我们来验证能否Ping通


// 进入到新的Tomcat中
docker exec -it custom-net-tomcat bash
// 获取容器的网络信息   
ip a


最后发现能够Ping通



Docker——网络通信(五)(5)


网络模型最终的结果如下:


Docker——网络通信(五)(5)


五、桥接网络 连接的 容器可以通过 Ping 容器名来连通,因为生成了DNS记录;对于普通的网络,则不能通过Ping容器名来连通。


如下为默认网络无法Ping通的验证:


docker exec -it tomcat01 ping 172.17.03
docker ps 
docker exec -it tomcat01 ping tomcat02


Docker——网络通信(五)(5)


使用自定义的桥接网络来新建两个容器


docker run -d --name tomcat11 --network tomcat-net tomcat
docker run -d --name tomcat22 --network tomcat-net tomcat


Docker——网络通信(五)(5)


查看两个新建的容器的ip


docker exec -it tomcat11 ip a ;
docker exec -it tomcat22 ip a


Docker——网络通信(五)(5)


桥接网络Ping通IP和容器名称的实验


Docker——网络通信(五)(5)


六、通过link技术增加一条DNS记录访问容器名称(与五结合这看)


docker rm -f tomcat01

docker run -d --name tomcat01 --link tomcat02 tomcat

docker exec -it tomcat01 ping tomcat02


Docker——网络通信(五)(5)


结论:Docker中使用自定义桥接网络不仅能够解决互联互通的问题,而且能解决ping 容器名的问题。


七、Docker中网络的三种形式

桥接网络(bridge):

主机网络(host):

(None):


Docker网络(host、bridge、none)详细介绍


八、多机通信的原理


Docker——网络通信(五)(5)


(1)使得两边的eth0能够通信
(2)前提要确保spring-boot-project container和mysql container的IP地址不一样
(3)将spring-boot-project中的所有信息当成eth0要传输给另外一端的信息
(4)具体通过vxlan技术实现
www.evoila.de/2015/11/06/what-is-vxlan-and-how-it-works
(5)处在vxlan的底层:underlay
处在xxlan的上层:overlay


Docker——网络通信(五)(5)


多机网络通信的问题,底层一个实现技术是:overlay ------>vxlan

network namespace veth-pair 桥接模式 原理

bridge host null —> docker多机网络通信 overlay

上一篇:原型模式 与 建造者模式(4)


下一篇:Docker——项目实战(六)(3)