docker容器配置dns解析地址,我知道的有以下几种办法(优先级从高到低):
1. 启动的时候加--dns=IP_ADDRESS;
2. 守护进程启动参数中添加DOCKER_OPTS="--dns 8.8.8.8" ;
3. 在/etc/docker/deamon.json中添加dns信息(与守护进程参数会冲突不能同时添加。);
4. 使用宿主机的/etc/resolv.conf文件;
具体经过:
Docker宿主机中的/etc/resolv.conf如下:
cat /etc/resolv.conf
结果如下:
nameserver 172.18.0.52
nameserver 172.18.0.70
nameserver 183.XX.XX.XX
search XXXXXX.local
启动docker容器,用busybox启动:
拉取镜像:
root@node-7:~# docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
9c075fe2c773: Pull complete
Digest: sha256:c3dbcbbf6261c620d133312aee9e858b45e1b686efbcead7b34d9aae58a37378
Status: Downloaded newer image for busybox:latest
启动容器,查看resolv.conf文件:
root@node-7:~# docker run -it busybox sh
/ # cat /etc/resolv.conf
search XXXXXX.local
nameserver 172.18.0.52
nameserver 172.18.0.70
问题来了:
两个文件按道理应该是一致的才对,从其它机器上也能够验证两个文件是一致的,为什么单这台机器的两个文件不一致。
查看官方文档介绍http://www.dockerinfo.net/%e9%ab%98%e7%ba%a7%e7%bd%91%e7%bb%9c%e9%85%8d%e7%bd%ae:
得知:resolv.conf文件利用虚拟文件来挂载到来容器的 。
经过与正常的节点对比之后发现两个mount的信息不一致:
有问题的环境是:
/ # mount |grep reso
/dev/mapper/vg_data-lv_data on /etc/resolv.conf type xfs (rw,relatime,attr2,inode64,noquota)
正常环境结果是:
/ # mount |grep resolv
/dev/vda1 on /etc/resolv.conf type ext4 (rw,noatime,data=ordered)
继续确定为什么会有这两个的差异。最终没有找到相关的介绍。
多番搜寻最后通过这篇文章https://blog.csdn.net/hanlaipeng11/article/details/79037438才发现,还有一种配置dns的办法:
于是在/etc/docker/daemon.json中配置dns。添加183.XX.XX.XX了后:
root@node-7:~# cat /etc/docker/daemon.json
"data-root": "/data/docker",
"dns": ["172.18.0.52", "172.18.0.70", "183.XX.XX.XX"],
"dns-search": ["fiibeacon.local"],
"hosts": ["unix:///var/run/docker.sock", "tcp://172.18.0.141:2375"],
"storage-driver": "overlay2"
加载配置,重启docker:
systemctl daemon-reload
systemctl restart docker
问题解决。
容器外:
1、docker inspect ID -f ‘{{ .NetworkSettings.IPAddress }}’
2、简单点:docker inspect ID | grep ‘IPAddress’
如何给docker容器配置DNS
1、进入容器,修改/etc/resolv.conf文件
2、docker run -
Linux dns默认127.0.0.53,在/etc/resolve.conf中存在 nameserver 127.0.0.53,手动修改无果,每次重启依旧127.0.0.53,因为这是系统生成的文件,resolvectl命令来查dns的配置。ping www.baidu.com #用ping连接百度验证,成功连接,能够解析域名。如果是自己的dns服务器,就换成公司的,之后查询,已生效。要修改dns,先暂停dns服务,如下操作,#然后重启网络服务器;
情景还原: 用docker拉取jenkins最新版本 docker pull jenkins/jenkins:lts报了这个错误:
Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker
一通百度,发现原来是dns服务器的错误,把服务器改成8.8.8.8或者114.114.114.114即可
具体做法:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim /et
上一篇文章学习了overlay2的基本知识, 分享时候发现有个问题。就是2cda8c39e97b6157f8599f83c50c4591da423a2c3c0abd20302140c515a876a9-init这种xxx-init文件是干什么用的。
搜了几篇文章都说这个是系统初始化时候,解决host问题的。但是具体过程都没有说明。
为此做了一些尝试。
首先看看host 中的resolve.conf...
我至少看到一个原因。
想象一下,如果容器引擎只是将这些文件写入容器的文件系统并且用户决定挂载/etc为卷(这是完全合法且非常有用的 - 安装/etc将允许用户为容器提供多个配置文件,会发生什么情况一个-v论点docker run):
首先,卷安装到容器的/etc目录;
然后它的内容由容器引擎改...
DOCKER常见问题
1.执行docker run的时候老是会出现这个错,网上查了半天也没有这个解决的办法,估计是错误太低级了不值得记录 现在正好在学习docker,记下来给大家有个提示,方便以后新手也能处理
docker : Error response from daemon: open /etc/resolv.conf: no such file or directory
这个错是指在do...
问题: 请求某个Url控制台报错:java.net.UnknownHostException:XXXXX 对应无法识别的域名。导致原因项目发布的Linux服务器,客户机域名解析配置文件/etc/resolv.conf,没有配置域名解析服务器。解决办法 在客户机域名解析配置文件/etc/resolv.conf文件中,添加:
nameserver 192.168.16.6知识扩充1.DNS是域名系
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
通过 service docker restart 尝试没有变化, 查看 docker 的日志 tail -5f /var/log/upstart/docker.log 发现
time=2017-04-
延伸:linux虚拟机网络配置与网络配置常用命令使用介绍描述:配置过程记录下来,防止遗忘!如有建议技术支持QQ群139785720一.linux网络配置经常使用的命令1)#ifconfig 查看配置的网卡 /sbin/ifconfig2) # vi /etc/resolv.conf 修改DNS resolv.conf的关键字主要有四个,分别是: nameserver #定义DNS服务器的IP地...
在KT的毒妇配置的时候,通过yum安装了桌面,默认安装了Gnome,在没重启前还一切正常,重启以后接着配置的时候,发现没法网络访问了,ping测试一下,host unkown;基本可以确定是DNS的问题。检查/etc/resolv.conf文件,发现# Generated by NetworkManager ,这个应该是在安装桌面的时候安装了gnome的网络...