docker0网络详解

 

1,理解docker0

 

 

 

 

2,启动tomcat容器:

[root@CentOs ~]# docker run -d -P --name tomcat01 tomcat
14d77b1819d72094eb584d07be1f70499ca8ca9aa5dc75aebb22d0af5400ad40
[root@CentOs ~]#

 

 

3,查看容器的内网网络地址:

docker exec -it tomcat01 ip addr

如果报错:

OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "ip": executable file not found in $PATH: unknown
请参考此链接:https://www.cnblogs.com/zypdbk/p/16046636.html

 

之后会显示下列内容,发现容器启动时会得到一个 eth0@if65 这样的IP地址,这个是docker给自动分配的

[root@CentOs ~]# docker exec -it tomcat01 ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
64: eth0@if65: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defa
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
[root@CentOs ~]#

 

思考一个问题:linux能不能ping通容器?

答案是可以ping通!

 

 

 

 

原理:

(1),我们每启动一个docker容器,docker就会给容器分配一个ip,我只要安装了docker,就会有一个网卡docker0。

docker0使用的是桥接模式,使用的技术是veth-pair技术!

 

再次测试:ip addr

 

 

 

 

 

(2)再启动一个容器测试,发现又多了一对网卡

 

 

 

 

 

 

 

 

 

我们发现发现这个容器带来的网卡,都是一对对的,这就是veth-pair技术!

veth-pair 就是一对的虚拟设备接口,他们都是成对出现的,一端连着协议,一端彼此相连。

正因为有了这个技术,我们把它当做桥梁,连接各种虚拟网络设备

OpenStack、docker容器之间的连接、OVS的连接,都是使用的veth-pair技术

 

(3)我们测试一下tomcat01和tomcat02是否可以ping通!

 

 

 

 

如果还是报错:OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "ping": executable file not found in $PATH: unknown

进入容器内部手动安装命令:apt-get install inetutils-ping,之后就可ping通了

 

结论:容器与容器之间是可以ping通的

 

绘制一个网络模型图:

 

 

 

 

网络图小结:tomcat01和tomcat02是共用一个路由器:docker0!

所有容器不指定网络的情况下,都是docker0路由的,docker会给我们的容器分配一个默认的可用ip

 

 

 

 

5,小结:

 

docker使用的是Linux的桥接,宿主机中有一个docker容器的网桥:docker0!

docker中的所有的网络接口都是虚拟的,虚拟的转发效率高!

 

 

 

 

只要删除容器,对应的网桥也就没了!

 

posted @ 2022-03-23 21:53  屯子里唯一的架构师  阅读(1109)  评论(0编辑  收藏  举报