IPVLAN
- 物理网卡:enp2s0
- VLAN ID:101
- IP 网段:192.168.101.0/24
- 网关:192.168.101.1(交换机 IP)
- Docker 网络名称:netipvlan
- 容器直接接入交换机的 VLAN 101,使用真实 IP 通信
- 容器与物理网络中的设备可直接互通
# 1. 创建 VLAN 子接口(如果系统未自动配置)
ip link add link enp2s0 name enp2s0.101 type vlan id 101
ip link set enp2s0.101 up
# 2. 创建 IPvlan L2 模式网络(二层透传)
docker network create \
-d ipvlan \
--subnet=192.168.101.0/24 \
--gateway=192.168.101.1 \
-o ipvlan_mode=l2 \
-o parent=enp2s0.101 \
netipvlan
# 3. 验证网络创建
docker network inspect netipvlan
# 4. 创建容器并连接到该网络
docker run -itd --network=netipvlan --name=test alpine sh
- VLAN 子接口:通过 ip link 创建 VLAN 101 子接口,绑定到物理网卡
- IPvlan 模式:使用 l2 模式(二层桥接),容器直接参与局域网通信
- 网关设置:容器默认网关指向交换机 IP 192.168.101.1
- 网络隔离:所有容器通过 VLAN 101 与外部通信,实现网络隔离
- 宿主机不会为该网络分配 IP,仅作为转发桥梁
- 容器需手动指定 IP,可在启动容器时添加 –ip 参数
# 查看容器 IP
docker exec test ip addr show eth0
# 测试网络连通性
docker exec test ping 192.168.101.1