群晖 | 将 Docker 的网络模式从 bridge 切换到 host

目的是让 docker 容器可以使用 ipv6 网络

需求

之前用 docker 版 qb,一直没啥问题,但是前几天给屋里的 ipv6 捣鼓出来了,所以就想着能不能让 qb 也用上 ipv6,增加连通性。

弯路

网上找了一些教程,都是说创建一个 ipv4 和 ipv6 双通的 macvlan 网络,跟着整了出来。

但是命令里需要指定 ipv6 子网,我的设备的 ipv6 地址并不是静态的,所以就放弃了。

解决方法

又找了找方法,有人提到将 docker 的网络模式设置为 host,可以让 docker 容器使用宿主机的网络信息。

遇到新问题

在群晖的 docker 容器设置里可以更改很多属性,但并不包括网络模式,网络模式在创建容器的时候就已经定死了,我又不想重新转种。

解决方案

摸索了一下,在群晖的容器界面可以将容器导出,导出的文件是 json,里边包含了所有的容器参数,当然也包含了网络模式和文件夹映射。

修改 json 文件,将网络模式从 bridge 切换到 host,再在群晖中导入,启动容器,就可以连上 ipv6 的用户了。

当然这么做的前提是旧的 docker 容器做过文件夹映射,不然文件夹都在 docker 内部,换个容器所有的做种都没了。