Docker容器内无法解析域名:Temporary failure in name resolution
解决办法
说明:我的操作环境为CentOS 8,与CentOS 7使用命令完全一致。其他不同Linux系统版本命令可能会有所不同,请根据自己的系统版本使用对应命令,直接百度相关操作即可。
1. 检查主机网络设置。
1. 检查主机网络设置
cat /proc/sys/net/ipv4/ip_forward
返回0则说明未打开,开启ip地址转发:
vi /etc/sysctl.conf
打开内核配置文件,查找net.ipv4.ip_forward = 0,将其修改为net.ipv4.ip_forward = 1,若该行开头有#,将其去掉;若配置文件中没有此项,则在文件最后添加此内容。

保存修改后,重启系统或输入以下命令使修改生效:
sysctl -p /etc/sysctl.conf systemctl restart network
检查一下问题是否解决,若没有则进入下一步排查。
2. 检查主机防火墙配置
查看防火墙状态(若防火墙为关闭状态,可跳过防火墙有关设置):
sudo firewall-cmd --state
若返回runging,则防火墙为开启状态,查看防火墙是否开启ip地址转发(ip地址伪装):
sudo firewall-cmd --query-masquerade
若返回no,则输入以下命令开启ip地址转发:
sudo firewall-cmd --add-masquerade --permanent
然后输入以下命令使修改生效:
sudo 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
到此这篇关于Docker容器内无法解析域名:;Temporary failure in name resolution的文章就介绍到这了,更多相关Docker无法解析域名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用非root用户安装及启动docker的问题(rootless模式运行)
docker是使用--userns-remap容器用户映射宿主机用户的方式来解决问题,用户和组的映射由两个配置文件来控制,分别是/etc/subuid和/etc/subgid,本文给大家介绍非root用户启动docker的问题,感兴趣的朋友一起看看吧2022-05-05
微信小程序Docker+Nginx环境配置业务域名验证文件的操作方法
本文介绍了如何在DockerCompose+Nginx环境下配置并访问静态验证文件,首先下载验证文件并将其挂载到容器中,然后修改Nginx配置文件使其能够正确返回请求路径下的静态文件,最后,测试访问验证文件并提交业务域名,感兴趣的朋友跟随小编一起看看吧2025-01-01
主机Nginx + Docker WordPress Mysql搭建的详细步骤
这篇文章主要介绍了主机Nginx + Docker WordPress Mysql搭建的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-11-11


最新评论