找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6|回复: 0

Docker网络指定使用的网卡作为出流量

[复制链接]

1

主题

10

回帖

146

积分

管理员

积分
146
发表于 2025-10-15 00:49:15 | 显示全部楼层 |阅读模式

如需更好的阅读模式,可前往我的博客

准备工作

  • 确认需要指定的网卡名称,可以使用 ip a 命令查看。并自行替换以下命令中的 ens224为你需要指定网卡的名称

一、创建Docker网络

用于只有在这个网络下的所有容器路由到指定网卡,默认容器不受影响

docker network create \  --subnet=192.168.9.0/24 \  --gateway=192.168.9.1 \  mynet

二、定义路由表

echo "100 ens224rt" >> /etc/iproute2/rt_tables

三、添加路由规则

ip route add default via 192.168.11.2 dev ens224 table ens224rt

四、添加路由规则

ip rule add from 192.168.9.0/24 table ens224rt

检查是否正确

ip route show table ens224rt

应当确保有一个正确输出,则表示配置正确

创建一个容器测试网络分流情况

docker run -it --rm --network=mynet busybox:latest /bin/sh

若您是做外网分流可以输入下发指令只要正确下载了 index.html则代表指定成功,否则请检查外网分流(如旁路由)

wget https://www.**.com/

五、开机自动配置

由于网络相关设置默认没有持久保存,重启后会恢复默认,所以我们可以使用最简单稳妥的办法使用系统服务在内核加载阶段网卡启动成功后执行脚本自动配置路由表

/usr/local/bin/ens224rt.sh

#!/bin/bash# 添加自定义路由表和规则ip route add default via 192.168.11.2 dev ens224 table ens224rtip rule add from 192.168.9.0/24 table ens224rt

/etc/systemd/system/ens224rt.service

[Unit]Description=Custom routing for Docker 192.168.9.0/24 via ens224After=network-online.targetWants=network-online.target[Service]Type=oneshotExecStart=/usr/local/bin/ens224rt.shRemainAfterExit=yes[Install]WantedBy=multi-user.target
chmod +x /usr/local/bin/ens224rt.shsystemctl enable ens224rt.service
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

本站由纳斯五零(NAS50.CN),版权所有,保留部分权利。豫ICP备2023035803号-1

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2025-10-24 04:26 , Processed in 0.092926 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表