本文共 1079 字,大约阅读时间需要 3 分钟。
Linux系统中,DNS解析器是一组C库的进程,用以访问DNS服务器。DNS解析器通过/etc/resolv.conf配置文件给出要访问的DNS服务器,配置文件修改后立刻生效,但系统重启后/etc/resolv.conf配置文件的内容回滚到初始状态。
1. Docker daemon的DNS配置
Docker daemon的配置有两种方式,一种是通过/etc/docker/daemon.json文件,另一种是通过dockerd的命令参数。
对于Docker daemon的DNS配置,二选一,不能同时以两种方式进行同一参数的配置,否则dockerd启动会失败。
1) 配置/etc/docker/daemon.json文件的DNS属性 { "dns": ["8.8.8.8", "8.8.4.4", "2001:4860:4860::8888", "2001:4860:4860::8844"], "dns-opts": ["debug"], "dns-search": ["example.com"], ... } 2) dockerd命令的DNS参数dockerd --dns 8.8.8.8 --dns-opt debug --dns-search example.com
2. docker run命令的DNS参数
在启动Docker容器实例的docker run命令中,也可以通过如下命令参数,为要创建的容器实例配置专用的DNS参数。
docker run -d --dns 8.8.8.8 --dns-opt debug --dns-search example.com --name myContainer myImage:latest
3. Docker容器实例中解析DNS的顺序
1) 首先,查找Docker daemon内置的DNS服务器127.0.0.11
2) 其次,查找docker run创建容器实例时通过--dns参数设置的DNS服务器
3) 再次,查找Docker daemon通过--dns参数,或/etc/docker/daemon.json文件设置的DNS服务器
4) 又次,查找Docker宿主机上/etc/resolv.conf文件中配置的DNS服务器
5) 最后,查找Google的DNS服务器,如8.8.8.8和8.8.4.4,2001:4860:4860::8888和2001:4860:4860::8844
参考链接:
转载地址:http://jhlai.baihongyu.com/