为docker容器提供域名解析服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为docker容器提供域名解析服务相关的知识,希望对你有一定的参考价值。
https://www.jianshu.com/p/10a47b59853e
仅列出我用过的几种方式
- yum方式部署
- docker方式部署
环境介绍
ip | role |
---|---|
172.16.91.222 | dns server |
172.16.91.166 | client |
172.16.91.167 | client |
yum方式部署DNS服务 [物理部署]
具体安装过程如下:
使用下面的命令
yum install -y dnsmasq
打开/etc/hosts文件 ,添加要解析的域名,如
echo "172.16.91.165 lb.guxin.com" >> /etc/hosts
启动dnsmasq服务
service dnsmasq restart
查看dnsmasq服务的状态
service dnsmasq status
注意:
????每次更新/etc/hosts都要重启dnsmasq服务,重新加载/etc/hosts文件,
其他节点(166,167)上的docker,如何访问dns呢?
????需要更新/etc/docker/daemon.json,添加dns键值对 , 如
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries":["172.16.91.222:80"],
"dns":["172.16.91.222"]
}
客户端节点,需要重新启动docker服务,从而加载配置文件
systemctl docker restart
?
?
docker 版本的DNS服务器部署
下载镜像
docker pull jpillora/dnsmasq
打标签
docker tag jpillora/dnsmasq 172.16.91.222:80/dns/dnsmasq
push到harbor上
docker push 172.16.91.222:80/dns/dnsmasq
编写配置文件/root/dns/dnsmasq.conf //配置文件位置,根据自己需求存放
#dnsmasq config, for a complete example, see: # http://oss.segetech.com/intra/srv/dnsmasq.conf #dns解析日志 log-queries #域名与IP映射 address=/lb.guxin.com/172.16.91.165
说明:
>docker 容器内部 会将lb.guxin.com解析成172.17.205.28
### 编写启动脚本
#!/bin/bash
docker stop xej-dnsmasq
docker rm xej-dnsmasq
docker run
--name xej-dnsmasq
-d
-p 53:53/udp
-p 6060:8080
-v /root/dns/dnsmasq.conf:/etc/dnsmasq.conf
--log-opt "max-size=100m"
-e "HTTP_USER=admin"
-e "HTTP_PASS=123456"
--restart always
172.16.91.222:80/dns/dnsmasq
### web UI登陆
http://172.16.91.222:6060
username:admin
password:123456
### 测试
#### 其他节点(166,167)上的docker,如何访问dns呢?
????需要更新/etc/docker/daemon.json,添加dns键值对 , 如
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries":["172.16.91.222:80"],
"dns":["172.16.91.222"]
}
#### 客户端节点,需要重新启动docker服务,从而加载配置文件
>systemctl docker restart
其实,docker部署跟yum部署,都是加载相同的配置文件,可以从日志中观察出来
以上是关于为docker容器提供域名解析服务的主要内容,如果未能解决你的问题,请参考以下文章