Docker网络

109 阅读1分钟

理解Docker0

image.png 三个网络

问题:docker如何处理容器网络访问的

原理:我们每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要安装了docker,就会有网卡一个docker0桥接模式,使用的技术是evth-par技术。 我们会发现每个容器带来的网卡都是一对一对的,evth-par就是一对的虚拟设备接口,它们都是成对出现的,一段连着协议,一端彼此相连。正因为有这歌特性,evth-par可以充当一个桥梁来连接虚拟网络设备。Openstack、docker容器之间链接和OVS连接都是使用evth-par技术。

例如: image.png

其中tomcat01和tomcat02共用一个公用路由器docker0.所有容器在不指定网络的情况下,都是docker0路由的,docker0会给我们路由器一个默认的ip

小结: Docker使用的是linux的桥接,宿主机中是一个docker容器的网桥docker0。

image.png Docker中所有的网络接口都是虚拟的,因为虚拟的转发效率高。只要容器删除,对应的网桥就没有了。

docker0: image.png

探究docker0里的网络:docker networ inspect id image.png

查看一个容器绑定的网络:docker exec -it id cat/etc/hosts,这样--link本质是在hosts配置中添加ip地址,现在已经不推荐使用了

因此现在需要自定义网络,不使用docker0,因为docker0不支持容器明连接访问。

自定义网络

查看所有docker网络:docker network ls

image.png

网络模式

  • bridge:桥接模式,就是在docker上拉桥。
  • none:不配置网络。
  • host:和宿主机共享网络。
  • container:容器网络联通(用的少,局限性大)。

测试

image.png

image.png 自己的网络:

image.png

网络连通

image.png

image.png