docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker容器DNS的解决

docker容器DNS的解决全过程

作者: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对映射文件的影响

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文