解决 docker 容器无法正常解析域名

在docker容器内ping ip地址能通,但是ping域名的时候报错

检查docker的DNS服务器

进入容器

docker exec -it /bin/bash
查看DNS服务器是否正确

cat /etc/resolv.conf

修改DNS服务器

a. docker内修改;在/etc/resolv.conf添加一下内容;这种方法只能修改单个docker容器

nameserver 8.8.8.8
nameserver 114.114.114.114

b. 宿主机内修改。这种方法之后创建的docker容器都会生效

vi /etc/docker/daemon.json
# 添加下面内容
{
    "dns": ["8.8.8.8","114.114.114.114"]
}


# 重启docker
systemctl restart docker

检查宿主机是否开启转发功能

查看宿主机是否开启

cat /proc/sys/net/ipv4/ip_forward

如果返回的结果为0说明未开启

开启方法

a. 直接修改上述文件

echo 1 > /proc/sys/net/ipv4/ip_forward

这种方式当主机重启的时候会改回原值

b. 修改/etc/sysctl.conf

vi /etc/sysctl.conf

添加下面一行代码

你可能感兴趣的:(docker,docker,容器,运维)