我已经安装了带有最新补丁的 Ubuntu 服务器,并切换到 AT+T,但突然无法从 Docker 容器内部解析外部站点。
如何解决这个问题?
我注意到,当我进行简单的 ping 操作时,AT + T 默认切换为使用 ipv6:
$ ping debian.org
PING debian.org(mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e)) 56 data bytes
这很酷,但是我的 Docker 容器现在在网络方面出现故障。
答案1
我发现 ipv6 的猜测似乎是正确的。通过为 Docker 启用 ipv6,我能够再次在 Docker 容器内建立网络。
首先修改/etc/docker/daemon.json:
{
"ipv6": true,
"fixed-cidr-v6": "fd00::/80"
}
接下来设置路由:
ip6tables -t nat -A POSTROUTING -s fd00::/80 ! -o docker0 -j MASQUERADE
请注意,您需要保留此信息,因为它将无法在重启后继续存在:
Ubuntu 18.04 上的 Iptables 重新加载/重启
接下来重启docker:
$ systemctl restart docker
现在您的 Docker 容器应该再次具有 ipv6。