如果 Docker 版本低于 1.13.0,就不支持 ip6tables,需要手动配置 iptables 以达到和 ip6tables: true 一样的效果。

具体步骤如下:

  1. 打开 /etc/sysctl.conf 文件,添加以下内容:
net.ipv6.conf.all.disable_ipv6 = 1

这会禁用 IPv6,以便 Docker 使用 IPv4。

  1. 运行以下命令以启用 IPv4 转发:
sudo sysctl -w net.ipv4.ip_forward=1
  1. 运行以下命令以创建一个名为 DOCKER 的 iptables 链:
sudo iptables -N DOCKER
  1. 运行以下命令以将 DOCKER 链附加到 FORWARD 链:
sudo iptables -A FORWARD -j DOCKER
  1. 运行以下命令以允许 Docker 访问主机网络:
sudo iptables -A DOCKER -d 0.0.0.0/0 -j ACCEPT
  1. 运行以下命令以允许 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 网络。

  1. 最后,运行以下命令以保存 iptables 配置:
sudo iptables-save | sudo tee /etc/iptables.rules

将此配置加载到 Docker 启动时:

  1. 打开 /etc/default/docker 文件,添加以下内容:
iptables-restore < /etc/iptables.rules

这会在 Docker 启动时加载上述 iptables 配置。

  1. 重启 Docker 服务:
sudo service docker restart

现在,Docker 将使用 iptables 来管理网络,达到和 ip6tables: true 一样的效果

docker 低版本不支持 ip6tables 。需要如何手动配置达到和 ip6tables true 一样的效果

原文地址: https://www.cveoy.top/t/topic/fn6F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录