Docker 网络详解之容器间经过IP互联

查看本机IP地址docker

# ip addr
1: lo: 127.0.0.1/8          #本机回环地址
2: eth0: 172.17.90.130/20   #阿里云内网地址
3: docker0: 172.18.0.1/16   #Docker0地址,至关于路由器

查看容器内部IP地址tomcat

# docker run -d -p 80:8080 --name tomcat01 tomcat
# docker exec -it tomcat01 ip addr
1: lo: 127.0.0.1                 #本机回环地址
261: eth0@if262: 172.18.0.2/16   #容器内部IP地址

宿主机ping容器内部地址,能够连通网络

# ping 172.18.0.2
64 bytes from 172.18.0.2:...
64 bytes from 172.18.0.2:...

再次查看本机IP地址测试

# ip addr
1: lo: 127.0.0.1/8          #本机回环地址
2: eth0: 172.17.90.130/20   #阿里云内网地址
3: docker0: 172.18.0.1/16   #Docker0地址,至关于路由器
262: vethc96781f@if261:     #对应容器的内部地址

再启动一个容器,查看容器内部IP地址阿里云

# docker run -d -P --name tomcat02 tomcat
# docker exec -it tomcat02 ip addr
1: lo: 127.0.0.1                 #本机回环地址
263: eth0@if264: 172.18.0.3/16   #容器内部IP地址

再次查看本机IP地址spa

# ip addr
1: lo: 127.0.0.1/8          #本机回环地址
2: eth0: 172.17.90.130/20   #阿里云内网地址
3: docker0: 172.18.0.1/16   #Docker0地址,至关于路由器
262: vethc96781f@if261:     #对应容器的内部地址
264: veth2d06adc@if263:     #对应容器的内部地址

测试容器之间(tomcat01 和 tomcat02)的连通code

# 容器和容器之间是能够连通的
# docker exec -it tomcat02 ping 172.18.0.2
64 bytes from 172.18.0.2:...
64 bytes from 172.18.0.2:...

全部的容器不指定网络的状况下,都是 docker0 路由的,docker 会给容器分配一个默承认用的IP。ip

Docker 网络结构图

1598176026499.png