标签:forever 00 网络 lft 理解 64 ff docker Docker
网络Docker理解 理解docker0 [root@docker ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 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 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:d0:e3:d9 brd ff:ff:ff:ff:ff:ff inet 192.168.0.11/24 brd 192.168.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fed0:e3d9/64 scope link 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:0c:c8:12:56 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 scope global docker0 valid_lft forever preferred_lft forever 网卡讲解: lo:本机回环地址 eth0:本机内网ip地址 docker0:docker地址 三个网络 #问题:docker是如何处理容器访问的 [root@docker ~]# docker run -d -P --name tomcat01 tomcat #查看容器内部ip地址:ip addr 发现容器启动的时候会得到一个eth0@if10 IP地址,docker分配的! [root@docker ~]# docker exec -it tomcat01 ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 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 inet6 ::1/128 scope host valid_lft forever preferred_lft forever 9: eth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.3/16 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::42:acff:fe11:3/64 scope link valid_lft forever preferred_lft forever #思考、linux能不能ping通容器内部! [root@docker ~]# ping 172.17.0.3 PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data. 64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.051 ms 64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.034 ms 64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.035 ms #linux可以ping通docker内部容器 原理 1.我们每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要安装了docker,就会有一个网卡docker0 桥接模式,使用的技术evth-pair技术 再次测试ip addr发现多了一个网卡 [root@docker ~]# ip addr ................... 10: veth6e4dc0c@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether 32:f6:1f:c1:c8:03 brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::30f6:1fff:fec1:c803/64 scope link valid_lft forever preferred_lft forever 在启动一个容器,发现又多了一对网卡 [root@docker ~]# docker run -d -P --name tomcat2 tomcat #我们发现容器带来的网卡都是一对对的 [root@docker ~]# ip addr ................... 20: veth6e9f134@if19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP link/ether 5e:f6:00:74:d9:9b brd ff:ff:ff:ff:ff:ff link-netnsid 1 inet6 fe80::5cf6:ff:fe74:d99b/64 scope link valid_lft forever preferred_lft forever #evth-pair技术就是一对虚拟设备接口,一端连着协议,一端彼此相连 #opstac,docker容器之间的连接,OVS的连接,都是使用evth-pair技术 3.我们来测试一个两个容器是否能够ping通 [root@docker ~]# docker exec -it tomcat02 ping 172.17.0.2 PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data. 64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.053 ms 64 bytes from 172.17.0.2: icmp_seq=2 ttl=64 time=0.044 ms 64 bytes from 172.17.0.2: icmp_seq=3 ttl=64 time=0.041 ms 64 bytes from 172.17.0.2: icmp_seq=4 ttl=64 time=0.048 ms #容器与容器之间是可以互相通信的 结论:Tomcat01与02是公用的路由器,docker0 所有的容器不指定网络的情况下,都是docker0路由器,docker会给我们的容器分配一个默认的可用IP 小结:docker使用的是linux的桥接,宿主机中是一个docker容器的网桥docker0 Docker中所有的网络都是虚拟的,因为虚拟转发的效率高! 只要容器删除,对应的一对网桥也没有了! [root@docker ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 219769a74201 bridge bridge local f6b9d84b1f81 host host local 47132fb890ac none null local 6a0ea9685aaa test-net bridge loca标签:forever,00,网络,lft,理解,64,ff,docker,Docker 来源: https://www.cnblogs.com/momo6656/p/15342960.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。