1. bridge概述
Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了docker0接口的IP地址和子网掩码,让主机和容器之间可以通过网桥相互通信。
如上图所示:
1. Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP。在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP直接通信。
2. docker run的时候,没有指定network的话默认使用的网桥模式就是bridge,使用的是docker0。
3. 网桥docker0创建一对对等虚拟设备接口一个叫veth,另一个叫eth0,成对匹配。整个宿主机的网桥模式都是docker0,类似一个交换机有一堆接口,每个接口叫veth,每个容器实例内部也有一块网卡,每个接口叫etho。在本地主机和容器内分别创建一个虚拟接口,并让他们彼此联通,一 一匹配。
2. 实验验证
新建两个tomcat实例 tomcat81 和 tomcat82 ,查看网络配置。第一张图是在宿主机上,红框里宿主机的veth27对应的是eth28,蓝框里宿主机的veth29对应的是eth30。第二张图是进入容器tomcat81内部,可看到容器内的eth28对应的宿主机上的veth27,第三张图是进入容器 tomcat82 内部,可看到容器内的eth30对应的宿主机上的veth29,是互相匹配的。
注:本文部分图文内容来自于 centos之dockerfile案例演示docker network之bridgecentos之dockerfile案例演示 的学习笔记,仅供参考。如看其他Docker内容,可看我博客Docker系列aaron_neil_Dcoker系列,持续更新中。