Docker的网络模式
1 Docker的网络模式介绍
1.1 Docker 的四种网络模式介绍
当你安装docker时,它会自动创建三个网络,可使用如下命令查看:
[root@node-3 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE ac8b38642359 bridge bridge local df54e2e2198f host host local 6634c3ba86ec none null local
- host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。使用--net=host 指定。
- Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。使用 --net=container:NAMEorID 指定。
- None:该模式关闭了容器的网络功能。使用 --net=none 指定。
- Bridge:此模式会为每一个容器分配、设置IP等。使用 --net=bridge 指定,默认设置。
2 Docker的原生Bridge网络模式
2.1 Bridge网络模式的原理
安装docker时会自动创建一个docker0网桥,运行容器时,可以使用docker run --network=<NETWORK>选项指定容器应连接到哪个网络,否则Docker守护程序默认将容器连接到docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。
Docker 随机分配一个本地未占用的私有网段( 在 RFC1918 中定义) 中的一个地址给docker0 接口。 此后启动的容器内的网口也会自动分配一个同一网段的地址。docker0的IP地址则为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备,Docker将veth pair设备的一端放在新创建的容器中,并命名为eth0(容器的网卡),另一端放在主机中,以vethxxx这样类似的名字命名,并将这个网络设备加入到docker0网桥中(bridge模式示意图如下图所示)。

- bridge模式下容器没有一个公有ip,只有宿主机可以直接访问,外部主机是不可见的。
- 容器通过宿主机的NAT规则后可以访问外网
2.2 如何查看docker网络接口
docker安装时会创建一个名为 docker0 的Linux bridge,新建的容器会自动桥接到这个接口
参考地址:https://blog.csdn.net/weixin_68398469/article/details/141674793
郭慕荣博客园

浙公网安备 33010602011771号