博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Docker daemon及容器实例的DNS配置详解
阅读量:4179 次
发布时间:2019-05-26

本文共 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参数。

  • --dns
  • --dns-option或--dns-opt
  • --dns-search

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/

你可能感兴趣的文章
菜鸟文科生的java之路:变量和常量
查看>>
菜鸟文科生的java之路:流程控制语句
查看>>
北海糖:Java初阶练习题
查看>>
不知道什么是数组?看这里就好了
查看>>
文科生北海唐的Java之路:方法(慕课)
查看>>
自学Java的轨迹线路
查看>>
如何更好的隐藏你自己,让我们谈谈什么是封装?
查看>>
文科生北海糖的:Java之路——继承
查看>>
Makefile 中:= ?= += =的区别
查看>>
消灭编译警告(Warning)
查看>>
(GCC) How can I hide "defined but not used" warnings in GCC?
查看>>
错误: 隐式声明函数‘kmalloc’ [-Werror=implicit-function-declaration]
查看>>
error: two or more data types in declaration specifiers原因及解决方法
查看>>
Linux驱动基础开发2
查看>>
ioctl在socket中的一些用法及示例
查看>>
Linux设备驱动--块设备(二)之相关结构体
查看>>
Linux设备驱动--块设备(四)之“自造请求”
查看>>
Nand Flash和Nor Flash相关知识
查看>>
NAND flash和NOR flash的区别
查看>>
writeb(), writew(), writel(),readb(), readw(), readl() 宏函数
查看>>