docker (三) 网络
docker (三) 网络
查看所有的Docker网络
docker network ls

1、Bridge 模式(默认)
工作原理:
-
Docker 守护进程启动时会创建一个虚拟网桥
docker0(默认 IP 段 172.17.0.0/16)。 -
每个使用 bridge 模式的容器会获得一个独立的网络命名空间,并通过
veth pair连接到docker0网桥。每启动一个Docker就从docker0网桥的 IP 段(如172.17.0.0/16)中取出一个未使用的 IP(如172.17.0.2),分配给容器的eth0。 -
容器之间通过
docker0进行通信,容器与外部网络通信需要经过 NAT(通过宿主机 IP 转发)。
特点
-
隔离性好:每个容器拥有独立的 IP、端口空间。
-
默认模式:
docker run不指定--network时默认使用 bridge。 -
需要端口映射:外部访问容器服务必须通过
-p或-P将宿主机端口映射到容器端口。
查看宿主机网络情况:

每运行一个 docker 容器都会生成一个 veth 设备对,这个 veth 一个接口在容器里,一个接口在物理机上,这样访问宿主机的IP和端口时,就能转发到容器中。

所有的容器不指定网络的情况下,都是用docker0 路由的,docker会给我们的容器默认分配一个可用的IP
2、 Host 模式
工作原理
- 容器不获得独立的网络命名空间,而是直接使用宿主机的网络栈。
- 容器的 IP 和端口就是宿主机的 IP 和端口(共享网络命名空间)。
特点
-
性能最高:没有 NAT 和 veth pair 开销,网络延迟低。
-
端口冲突:容器内绑定的端口会直接占用宿主机端口,同一端口只能启动一个容器。
-
隔离性弱:容器可以看到宿主机的所有网络接口,甚至能修改宿主机网络配置(需要特权)。
3、None 模式
工作原理
-
容器拥有独立的网络命名空间,但没有任何网络配置(无网卡、无 IP、无路由)。
-
只有
loopback接口(127.0.0.1)。
特点:完全隔离:无法与外部通信,只能容器内部进程间通信。
4、Container 模式(共享网络栈)
工作原理
-
新容器与一个已存在的容器共享网络命名空间,即它们使用相同的 IP、端口空间和网络接口。
-
除了网络,其他资源(文件系统、PID、UTS)仍然隔离。
特点
-
紧密耦合:两个容器可以通过
localhost直接通信(如 sidecar 模式)。 -
端口共享:不能绑定相同的端口,因为网络栈是共享的。
-
生命周期:如果被共享的容器重启或删除,共享容器的网络也会受影响。

浙公网安备 33010602011771号