Docker | 容器网络管理

Docker | 容器网络管理

_

1. Docker原生网络驱动程序

Docker提供了5种原生的Network drivers

模型

说明

bridge

默认网络驱动程序,主要用于多个容器在同一个Docker宿主机上进行通信

host

容器加入到宿主机的Network namespace,容器直接使用宿主机网络

none

none网络中的容器不能与外部通讯,类似于常见的Loopback

Overlay

Overlay网络可基于Linux网桥和Vxlan,实现跨主机的容器通信

Macvlan

Macvlan用于跨主机通信场景

[Step1] 在Docker安装时,会自动在主机上创建三个网络,通过命令查看当前系统存在的容器网络。

[root@redhat ~]# docker network ls

2. none网络

none网络是比较封闭的网络,对一些安全性要求比较高且不需要联网的场景中,可以使用none网络。none网络的drive类型为null,IPAM字段为空,挂载在none网络上的容器只有lo。

[Step1] 查看内置none网络模式的详细配置信息。

[root@redhat ~]# docker network inspect none

3. host网络

挂载在host网络上的容器共享宿主机的 network namespace,也就是容器的网络配置和host网络配置一样。

4. bridge网络

docker在安装后,会自动创建一个docker0网桥。创建容器时,容器会默认挂载到docker0网桥上。可以将docker0认为是一个DHCP地址池,当创建容器时,docker0会为该容器分配一个地址,用于实现主机与容器的互访。

[Step1] 查看当前主机docker0的网络配置。

[root@redhat ~]# ip add show docker0

[Step2] 查看内置bridge网络模式的详细配置信息。

[root@redhat ~]# docker network inspect bridge

[Step3] 创建一个容器kylin,然后查看该容器的网络配置。

[root@redhat ~]# docker run -d --name kylin kylinsp3 /sbin/init
[root@redhat ~]# docker inspect kylin | grep -A 15 Networks

5. user-defined bridge网络

在Docker中,用户可以根据自己的需求去创建bridge网络,称为user-defined bridge。

[Step1] 创建一个user-defined bridge,命名为bdg1。

[root@redhat ~]# docker network create --driver bridge --subnet 192.168.10.0/24 --gateway 192.168.10.1 bdg1
[root@redhat ~]# docker network ls

[Step2] 创建两个容器并将其加入到bdg1网络。

[root@redhat ~]# docker run -d --name kylin01 --network bdg1 kylinsp3:latest /sbin/init
[root@redhat ~]# docker run -d --name kylin02 --network bdg1 kylinsp3:latest /sbin/init
[root@redhat ~]# docker inspect kylin01 | grep -A 11 Networks
[root@redhat ~]# docker inspect kylin02 | grep -A 11 Networks

Docker | 容器镜像原理与构建方法 2026-03-21
Docker | 数据持久化与跨容器共享 2026-03-21

评论区