Docker容器修改dns


在实际的开发过程中,可能会碰到以下的使用场景:
宿主机器可以正常的解析域名,但是容器里面无法解析域名,只能解析ip。碰到这种情况基本的思路有两个,一是从hosts文件下手,加入新的映射关系;一是从resolv.conf文件入手,也就是修改DNS服务器(如果是windows系统,则需要在网络配置里面手动输入DNS服务器地址)。

  • Docker修改DNS
    如果用户是在Dockerfile里面修改/etc/resolv.conf、/etc/hosts以及/etc/hostname文件,均不会生效。每一次启动容器上述三个文件都会被虚拟文件覆盖。参考文章“深入浅出”来解读Docker网络核心原理

此时如果需要修改容器的dns有以下两种方法:

1、 在启动容器的同时,指定dns参数

docker run --dns 10.0.0.2 --name mybusybox busybox:latest

2、 修改宿主机器的docker配置

cat /etc/docker/daemon.json 
{
"dns" : [
"114.114.114.114",
"8.8.8.8"
]
}
sudo service docker restart


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM