Docker 低版本手动配置 IPv6 网络 (替代 ip6tables: true)
如果 Docker 版本低于 1.13.0,就不支持 ip6tables,需要手动配置 iptables 以达到与 ip6tables: true 相同的效果。
具体步骤如下:
- 打开
/etc/sysctl.conf文件,添加以下内容:
net.ipv6.conf.all.disable_ipv6 = 1
这会禁用 IPv6,以便 Docker 使用 IPv4。
- 运行以下命令以启用 IPv4 转发:
sudo sysctl -w net.ipv4.ip_forward=1
- 运行以下命令以创建一个名为 DOCKER 的 iptables 链:
sudo iptables -N DOCKER
- 运行以下命令以将 DOCKER 链附加到 FORWARD 链:
sudo iptables -A FORWARD -j DOCKER
- 运行以下命令以允许 Docker 访问主机网络:
sudo iptables -A DOCKER -d 0.0.0.0/0 -j ACCEPT
- 运行以下命令以允许 Docker 访问容器网络:
sudo iptables -A DOCKER -s 172.17.0.0/16 ! -d 172.17.0.0/16 -j ACCEPT
注意,这里假设 Docker 使用默认的 172.17.0.0/16 网络。
- 最后,运行以下命令以保存 iptables 配置:
sudo iptables-save | sudo tee /etc/iptables.rules
将此配置加载到 Docker 启动时:
- 打开
/etc/default/docker文件,添加以下内容:
iptables-restore < /etc/iptables.rules
这会在 Docker 启动时加载上述 iptables 配置。
- 重启 Docker 服务:
sudo service docker restart
现在,Docker 将使用 iptables 来管理网络,达到与 ip6tables: true 相同的效果。
原文地址: https://www.cveoy.top/t/topic/odTb 著作权归作者所有。请勿转载和采集!