
kathara/katharanp_vde该镜像提供一个Docker网络插件,专门用于创建纯二层(L2)网络环境。通过集成VDE(虚拟分布式以太网)软件交换机和tap虚拟网络接口,实现Docker容器间的二层网络通信,补充Docker默认网络模型在纯L2层通信支持上的不足,适用于需要链路层直接交互的应用场景。
vde2(提供VDE交换机)、uml-utilities(提供tap接口管理工具)通过Docker插件管理命令安装(假设插件已发布至Docker插件仓库):
bashdocker plugin install --grant-all-permissions vde-l2-network-plugin:latest
使用插件驱动创建纯二层网络:
bashdocker network create \ --driver=vde-l2-network-plugin \ --opt vde_switch_path=/usr/bin/vde_switch \ --opt tap_prefix=vde-tap \ --opt mtu=1500 \ my-l2-network
网络创建参数说明:
--driver: 指定使用该L2网络插件--opt vde_switch_path: VDE交换机可执行文件路径(默认:/usr/bin/vde_switch)--opt tap_prefix: tap接口名称前缀(默认:vde)--opt mtu: 网络接口MTU值(默认:1500)--opt vlan_id: 可选,指定VLAN标签(如vlan_id=100)实现VLAN隔离启动容器并连接至创建的L2网络:
bash# 启动容器1 docker run -d --name=container-l2-1 --network=my-l2-network --rm nginx:alpine # 启动容器2(交互式) docker run -it --name=container-l2-2 --network=my-l2-network --rm alpine sh
在container-l2-2中安装网络工具并验证L2连通性:
bash# 安装必要工具 apk add --no-cache iproute2 arping # 查看容器网络接口(确认tap接口存在) ip link show # 获取目标容器MAC地址(假设container-l2-1的IP为192.168.1.10) arping -I eth0 192.168.1.10
在docker-compose.yml中使用该网络插件:
yamlversion: '3.8' networks: l2-network: driver: vde-l2-network-plugin driver_opts: vde_switch_path: /usr/bin/vde_switch tap_prefix: app-tap mtu: 1450 services: node1: image: nginx:alpine networks: - l2-network node2: image: alpine:latest command: sleep infinity networks: - l2-network
启动服务:
bashdocker-compose up -d
vde2和uml-utilities包(Debian/Ubuntu: apt install vde2 uml-utilities;RHEL/CentOS: yum install vde2 uml-utilities)vlan_id选项)或主机防火墙策略bash# 移除所有使用该插件的网络 docker network rm $(docker network ls --filter driver=vde-l2-network-plugin -q) # 卸载插件 docker plugin disable vde-l2-network-plugin:latest docker plugin rm vde-l2-network-plugin:latest
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务