Docker容器无法解析域名的处理
问题
在docker容器内ping ip地址能通,但是ping域名的时候报错

检查docker的DNS服务器
进入容器
docker exec -it <id or name> /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
添加下面一行代码
net.ipv4.ip_forward = 1
重启主机或者执行下面的命令使之生效
sysctl -p /etc/sysctl.conf
检查防火墙设置
查看防火墙状态
firewall-cmd --state
返回如果是not running就说明不是防火墙问题
如果是running,进行下一步
查看防火墙是否开启伪装功能
firewall-cmd --query-masquerade
如果为no,执行下面的命令开启
firewall-cmd --add-masquerade --permanent
使配置生效
firewall-cmd --reload
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
使用Docker搭建Django,Nginx,R,Python部署环境的方法
本篇文章主要介绍了使用Docker搭建Django,Nginx,R,Python部署环境的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-02-02
Docker容器部署Elasticsearch并配置分词器的方法实现
本文主要介绍了Docker容器部署Elasticsearch并配置分词器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2026-04-04
如何在 Ubuntu 下通过 Docker 部署 Caddy 
本文介绍了如何在Ubuntu系统下通过Docker部署Caddy服务器,首先安装Docker,然后启动Docker服务并设置为开机自启,接着拉取Caddy镜像,并创建一个Caddyfile配置文件,使用命令运行Caddy容器,并将本地的Caddyfile挂载到容器内,感兴趣的朋友跟随小编一起看看吧2025-03-03
Docker 和 Containerd 目录结构及存储机制详解
Docker和Containerd是两种流行的容器运行时工具,它们都有自己的目录结构和存储机制,本文详细介绍了Docker和Containerd的目录结构和存储机制,并对比了它们之间的主要区别,包括存储路径、挂载点管理、配置文件和日志文件,感兴趣的朋友一起看看吧2025-02-02


最新评论