在 docker build 的过程中 apt-get 一直无法 resolve archive.ubuntu.com,一开始以为是 dns 的问题,故做了如下的尝试
/etc/default/docker
中的 DOCKER_OPTS,但实践证明,不要轻易改动,容易导致 service docker restart 起不起来/etc/docker/daemon.json
,加入“DNS”配置,实践证明并不 work/etc/resolv.conf
中的 nameserver,实践证明并不 work后来发现,并不是 dns 的问题,因为
docker run busybox ping -c 1 111.13.101.208
(百度 IP),无法 ping 通docker run --network host busybox ping -c 1 111.13.101.208
可以 ping 通所以,归结下来,是 docker bridge 无法访问外网。临时方案,可以用以下方式解决
/etc/ufw/before.rules
,在 *filter
前加上*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE COMMIT
sudo ufw reload 或者 sudo ufw disable sudo ufw enable
/etc/default/ufw
,设置 DEFAULT_FORWARD_POLICY="ACCEPT"