查看本机 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 网络结构图