Docker网络

理解Docker0

三个网络

ip addr

《Docker网络》

  • lo 本地回环地址
  • etho 内网地址
  • docker0 docker地址
问题:docker 是如何处理容器网络访问的

docker run -d -P --name tomcat01 tomcat


# 查看容器的内部网络地址 ,发现容器运行的时候会得到一个 **eth0@if262** ip地址,docker分配的
docker exec -it tomcat01 ip addr

# Linux 可以 ping 通 docker 容器内部
ping ip地址

原理docker0

  1. 我们每启动一个docker容器,docker就会给docker容器分配一个ip,只要安装了docker,就会有一个网卡docker0
  • 桥接模式,使用的技术是evth-pair技术。
  • 再次测试ip addr
  1. 再启动一个容器,发现又多了一对网卡
# 我们发现这个容器带来网卡,都是一对一对的
# evth-pair  就是一对的虚拟设备,他们都是成对出的,一端连着协议,一段彼此相连
# 正因为这个特性, evth-pair 充当一个桥梁,连接着各种虚拟网络设备的
  1. 容器和容器之间是可以互相ping通的
  • docker01 ping docker02
    《Docker网络》
    结论:tomcat01 和 tomcat02 是公用的一个路由器,docker0
    所有的容器不指定网络的情况下,都是 docker0 路由的,docker会给我们的容器分配一个默认的可用IP
  • docker使用的是Linux的桥接,宿主机中是一个Docker容器的网桥docker0
    《Docker网络》
  • Docker中的所有的网络接口都是虚拟的,虚拟的转发效率高
  • 只要删除容器,对应的网桥一对就没了

–link

# error
docker exec -it tomcat02 ping tomcat01

# 解决,通过 --link 即可以解决了网络联通问题 
docker run -d -P --name tomcat03 --link tomcat02 tomcat

# success
docker exec -it tomcat03 ping tomcat02

# 但是反向不可以ping
docker exec -it tomcat02 ping tomcat03
  • 本质探究
    –link就是在hosts配置中增加了一个172.18.0.3 tomcat02 312857784cd4
    建议使用自定义网络

自定义网络

    原文作者:你在学什么
    原文地址: https://www.cnblogs.com/changebaobao/p/16247398.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞