docker容器DNS的解决全过程
更新时间:2025年09月11日 10:06:40 作者:IT杂人
容器默认继承宿主机DNS配置,修改宿主机/etc/resolv.conf后容器文件不自动同步,显式挂载时,使用echo修改避免inode变化,确保容器生效,可借助stat命令查看inode信息,并通过docker启动配置管理文件映射
创建容器时指定DNS
#docker-compose
dns:
- 8.8.8.8
- 8.8.4.4
#docker run方式 --dns=8.8.8.8 --dns=8.8.4.4
使用默认的方式
会自动加载宿主机的/etc/resolv.conf内容到到容器
但修改宿主机的/etc/resolv.conf文件,不会同步更新到容器里的/etc/resolv.conf;
使用显示挂载的方式
修改宿主机时使用echo,因为使用vi会改变inode,修改后并不会相应变化到容器
#映射文件 "/etc/resolv.conf:/etc/resolv.conf" #通过echo的方式修改宿主机文件 echo "nameserver 8.8.8.8" >> /etc/resolv.conf
设置docker启动配置
#vi /etc/docker/daemon.json,增加配置: "dns" : ["114.114.114.114","8.8.8.8"]
附:
查看文件inode信息
stat filename
vi和echo对映射文件的影响
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Docker 和 Containerd 目录结构及存储机制详解
Docker和Containerd是两种流行的容器运行时工具,它们都有自己的目录结构和存储机制,本文详细介绍了Docker和Containerd的目录结构和存储机制,并对比了它们之间的主要区别,包括存储路径、挂载点管理、配置文件和日志文件,感兴趣的朋友一起看看吧2025-02-02
在Ubuntu下通过Docker部署MySQL服务器的详细步骤
Docker 是一个开源的容器化平台,能够让开发者将应用程序及其依赖打包成一个轻量级的、可移植的容器,MySQL 是一个流行的开源关系型数据库管理系统,本文给大家介绍了在Ubuntu下通过Docker部署MySQL服务器的详细步骤,需要的朋友可以参考下2025-01-01
Docker无法连接到Docker Hub和镜像加速器的问题详解
这篇文章主要介绍了Docker容器无法连接到DockerHub或镜像加速器问题的步骤,包括检查和更换DNS服务器、测试网络连通性、使用镜像加速器和检查防火墙及安全组规则,通过逐一排查,可以解决大多数连接问题,需要的朋友可以参考下2025-03-03


最新评论