乐趣区

关于docker:Docker-网络详解之容器间通过IP互联

查看本机 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 地址,相当于路由器 

查看容器外部 IP 地址

# 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 地址

# 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)的连通

# 容器和容器之间是能够连通的
# 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。

Docker 网络结构图

退出移动版