使用 ip6tables 在群晖 DiskStation 上开启 Docker Bridge 网络 IPV6 支持(不支持 SA6400)

使用 ip6tables 在群晖 DiskStation 上开启 Docker Bridge 网络 IPV6 支持(不支持 SA6400)

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

本文介绍了为黑群晖的Docker Bridge网络开启IPV6支持的方法,包括手动添加ip6tables模块、配置Docker和在Docker Compose中启用IPV6。

🔎

延伸解读

为何需要手动加载 ip6tables 模块

群晖 DSM 系统基于魔改版 Linux,默认未内置 ip6tables 模块,导致 Docker Bridge 网络无法支持 IPv6。文章指出,必须从 syno-iptables 仓库下载对应 CPU 架构和内核版本的模块文件,并手动复制到系统目录,再通过 insmod 命令加载。这一步骤是后续配置的基础,若跳过则 Docker 无法启用 IPv6 支持。

Docker 配置文件的版本差异

DSM 7.2 之后,Docker 套件更名为 Container Manager,其配置文件路径从 /var/packages/Docker/etc/dockerd.json 变为 /var/packages/ContainerManager/etc/dockerd.json。文章提醒,修改 dockerd.json 时需根据系统版本选择正确路径,否则配置不会生效。这反映了群晖系统更新对 Docker 管理方式的影响,操作前需确认 DSM 版本。

Bridge 网络与 Host 网络的取舍

文章提到,虽然 Host 网络可以简单地为容器开启 IPv6 访问,但会失去在同一个 Compose 中使用容器名互访的能力,也无法映射端口。因此,作者选择为 Bridge 网络开启 IPv6 支持,以兼顾 IPv6 连通性和容器间通信的便利性。读者需根据自身需求权衡两种网络模式的利弊。

❓

Q&A

如何在群晖上为Docker Bridge网络开启IPv6支持?

需要手动添加ip6tables模块,配置Docker,并在Docker Compose中启用IPv6支持。

为什么Docker的Bridge网络默认不支持IPv6?

因为Docker的Bridge网络在默认设置中未启用IPv6,导致容器无法访问IPv6站点。

在群晖上如何下载和上传ip6tables模块?

前往syno-iptables仓库,下载适合群晖CPU架构和内核版本的ip6tables模块,并上传到群晖的任意文件夹中。

如何通过SSH在群晖上加载ip6tables模块?

通过SSH进入群晖,执行相应的insmod命令加载ip6tables模块。

在Docker Compose中如何启用IPv6支持?

只需在Docker Compose配置中添加相应的IPv6支持配置即可。

SA6400是否适用本教程?

不适用,本教程仅适用于黑群晖和白群晖。

🏷️

标签

➡️

继续阅读