Docker容器修改dns

Posted Mrnx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Docker容器修改dns的主要内容,如果未能解决你的问题,请参考以下文章

docker学习

宿主机改dns容器会生效吗

Docker 设置 DNS

Docker 设置 DNS

Docker 容器无法访问 DNS 但无法解析主机

Cemtos7.2内网搭建DNS服务器