在Ubuntu 18.04上能正常连网,但启动的docker却连不上网,后来进一步研究发现,docker能ping通百度的ip但ping不了它的域名,所以可以确定是dns服务器的问题。
查看本主机的dns服务器
cat /etc/resolv.conf
nameserver 127.0.0.53
而且它的第一行还写着:
# This file is managed by man:systemd-resolved(8). Do not edit.
这是ubuntu用了systemd-resolvd,这个域名解析服务器也不是普通的一个服务器,只是一个虚拟的网络服务。新启动的docker容器无法使用它,默认的dns又无法使用,造成了docker不能正常上网。
因此一种解决方法是禁用它,
systemctl disable systemd-resolvd
在/etc/resolv.conf中配置成想要的dns,重启机器就好了。
查看docker能否连网:
docker run --rm alpine:latest ping -w 2 www.baidu.com
查看docker的dns
docker run --rm alpine:latest cat /etc/resolv.conf
可以发现文件内容与所在该机一致。
网友评论