
背景
出于某些特殊的原因,想给一些容器独立的 ip,再利用主路由的黑名单对其进行一些访问限制,查到可以利用 macvlan 或 ipvlan 来处理此类需求,经过几天时间反复尝试以及朋友的指导,终于圆满达成目的。
笔者这里用飞牛 os 来做演示和讲解,下面是具体步骤:
一、创建 macvlan 网络
- 网卡 id 可以通过 ifconfig 查询,或者在飞牛设置页面查到

二、创建容器,这里以 qb 为例
- 32.xx 为希望固定的 ip
- 从参考文章里得知,因为 qBittorrent 启动得“太快”了,以至于网络接口还没来得及配置好 IPv6,会导致启动后无法获取 v6 公网的情况。所以在创建 qb 的时候,对启动做延迟处理,在启动文件里增加 sleep 5,并且为了确保每次重启不会叠加这行代码,在添加前增加一个判断(详见上述代码中 entrypoint 内配置内容)。
三、容器间互访问题
macvlan 具有隔离特性!!!
所以上面所创建的 macvlan 容器是无法与其他 docker 容器或者 nas 本身进行通信的,比如你的同个宿主机内的容器无法访问这个 qb,要实现互访有两种方案:
- 方案一:简单粗暴,就是把你需要互访的容器都部署到同一个 vlan 下,前提是你只需要他们之间互访,不需要与其他容器互访。
- 方案二:通过虚拟网桥来实现与宿主机之间的互通,并且要设置开机自启。
下面具体说下方案二的步骤:
- 创建网桥
ssh 到飞牛,sudo -i 到 root
写入:
保存并退出。
添加权限:
- 创建 systemd 服务单元:
输入:
保存并退出。
- 启用并启用 systemd 服务:
- 可以 reboot 后使用以下命令查看网桥是否自动创建:
使用macvlan或ipvlan为容器创建独立ip
本文是原创文章,采用 协议,完整转载请注明来自
发表回复