docker容器内部无法解析域名
1.检查主机是否开启转发功能
cat /proc/sys/net/ipv4/ip_forward
看输出结果,如果返回是0则未开启ip转发
开启方法:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
使配置生效
sysctl -p
2.检查防火墙设置
查看防火墙的状态
firewall-cmd --state
如果是not running状态就不用执行以下操作
如果返回running,继续进行下一步操作
继续看下防火墙是否开启伪装功能
firewall-cmd --query-masquerade
如果返回no,输入下面命令开启伪装功能
firewall-cmd --add-masquerade --permanent
使配置生效
firewall-cmd --reload
3.设置docker的DNS服务器
编辑docker的守护进程文件
vi /etc/docker/daemon.json
添加下面内容
{
"dns": ["8.8.8.8","114.114.114.114"]
}
重启docker
systemctl restart docker