Ubuntu18.04搭建docker的DNS解析服务
date: 2019-09-03tags:dockerDNSUbuntu需求内部服务器使用docker,80多个项目分到不同的tomcat中,项目之间还有相互调用的需要,当然,如果有单独的注册中心,那肯定是没什么问题了。调用是基于内部的域名进行访问的,为每一个tomcat容器配置dns解析也不是不可以,那么多,就很烦躁了,link也无能为力,于是打起了DNS解析的主意。环境服...
·
需求
内部服务器使用docker
,80多个项目分到不同的tomcat
中,项目之间还有相互调用的需要,当然,如果有单独的注册中心,那肯定是没什么问题了。调用是基于内部的域名进行访问的,为每一个tomcat
容器配置dns
解析也不是不可以,那么多,就很烦躁了,link
也无能为力,于是打起了DNS
解析的主意。
环境
服务器:
镜像:
有两个,一个是命令行版,一个是带有web
配置界面,看个人需求,这里选择第二种,毕竟不一定是我使用。jpillora/dnsmasq
配置文件
$sudo vim /opt/dnsmasq.conf
# 解析日志
log-queries
no-resolv
# DNS解析服务器地址
server=114.114.114.114
server=8.8.8.8
server=8.8.4.4
# 定义自己的主机与ip映射
address=/gitlab.congco.com/192.168.9.151
address=/db.keeep.com/192.168.9.100
address=/tbase.keeep.com/192.168.9.123
address=/keeep.com/192.168.9.123 # 解析*.keeep.com
运行容器
docker run \
--name dnsmasq \
-d \
-p 53:53/udp \
-p 8080:8080 \
-v /opt/dnsmasq.conf:/etc/dnsmasq.conf \
--log-opt "max-size=100m" \
-e "HTTP_USER=admin" \
-e "HTTP_PASS=admin" \
--restart always \
jpillora/dnsmasq
注意:这里可能会有53
端口冲突,Ubuntu
自有的DNS
解析会占用
查看端口占用
sudo netstat -anp | grep 53 #会发现是systemd-resolved服务占用
sudo systemctl disable systemd-resolved.service
sudo systemctl stop systemd-resolved
解决办法:
How to disable systemd-resolved in Ubuntu?
DNS
解析配置
运行成功以后,查看dns
解析所在的服务ip
sudo netstat -anp | grep 53
udp 0 0 172.17.0.1:38874 172.17.0.7:53 ESTABLISHED 1025/docker-proxy
udp 0 0 172.17.0.1:37185 172.17.0.7:53 ESTABLISHED 1025/docker-proxy
编辑/etc/resolv.conf
sudo vim /etc/resolv.conf
nameserver 127.0.0.1 #必填
nameserver 172.17.0.7 #必填[本机主要网卡]
WEB
界面
服务器ip:8080
,port
和上面的运行时参数设置的一致,如果出现占用请自行设置.
验证
修改docker
的DNS
解析
sudo vim /etc/docker/daemon.json
{
"dns":["dns服务所在的ip地址"]
}
重启docker
服务
Ubuntu
下
sudo service docker restart
进入容器内部
docker exec -it [容器名称] bash
root@tomcat01:/usr/local/tomcat# ping staticmed.keeep.com
结果:
zc@ns_02:~$ docker exec -it docker_tomcat01_1 bash
root@tomcat01:/usr/local/tomcat# ping tbase.keeep.com
PING tbase.keeep.com (192.168.9.123) 56(84) bytes of data.
64 bytes from 192.168.9.123 (192.168.9.123): icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 192.168.9.123 (192.168.9.123): icmp_seq=2 ttl=64 time=0.073 ms
64 bytes from 192.168.9.123 (192.168.9.123): icmp_seq=3 ttl=64 time=0.056 ms
64 bytes from 192.168.9.123 (192.168.9.123): icmp_seq=4 ttl=64 time=0.061 ms
64 bytes from 192.168.9.123 (192.168.9.123): icmp_seq=5 ttl=64 time=0.083 ms
64 bytes from 192.168.9.123 (192.168.9.123): icmp_seq=6 ttl=64 time=0.058 ms
^C
--- tbase.keeep.com ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5097ms
rtt min/avg/max/mdev = 0.047/0.063/0.083/0.011 ms
参考链接:
更多推荐
已为社区贡献1条内容
所有评论(0)