docker dnsmasq详解
1、官方地址
https://github.com/andyshinn/docker-dnsmasq
https://hub.docker.com/r/andyshinn/dnsmasq/
docker pull andyshinn/dnsmasq:2.75
docker pull andyshinn/dnsmasq:2.78 最新版
使用此命令下载
docker pull andyshinn/dnsmasq
端口前ip可加可不加(有时执行后有问题)
docker run -d -p 192.168.0.81:53:53/tcp -p 192.168.0.81:53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq
可以执行这条
docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns andyshinn/dnsmasq
在宿主机上创建逻辑卷映射的目录,把基础镜像启动的容器的dnsmasq.conf文件拷贝到宿主机对应的路径下:
[root@develop_mysql_redis dnsmasq]# docker cp e09ff9a5d7d8:/etc/dnsmasq.conf .
删除容器中的文件dnsmasq.conf 和目录dnsmasq.d,之后把此基础容器封装成镜像dnsmasq。
使用封装的镜像启动容器:
docker run -d -p 53:53/tcp -p 53:53/udp -v /data/dnsmasq/dnsmasq.d/:/etc/dnsmasq.d/ -v /data/dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf --cap-add=NET_ADMIN --name dns-server --restart=always dnsmasq
注意: /etc/dnsmasq.conf要删掉否则映射修改没效果!!!!
配置文件可以单个映射进去
wilker@ubuntu:~/Desktop/a_dns$ docker run -d \
-p 192.168.1.102:53:53/tcp \
-p 192.168.1.102:53:53/udp \
-v /home/wilker/Desktop/a_dns/my_dnsmasq_hosts:/etc/my_dnsmasq_hosts \
-v /home/wilker/Desktop/a_dns/my_resolv.dnsmasq:/etc/my_resolv.dnsmasq \
--cap-add=NET_ADMIN \
--name my_dns_server \
andyshinn/dnsmasq
vim /etc/sysctl.conf可改可不改
net.ipv4.ip_forward = 1
进入到启动的容器中:
docker exec -it dns-server /bin/sh
/ # vi /etc/resolv.dnsmasq
nameserver 114.114.114.114
nameserver 8.8.8.8
/ # vi /etc/dnsmasqhosts
192.168.0.80 master
192.168.0.81 slave
/ # vi /etc/dnsmasq.conf
#listen-address=127.0.0.1,192.168.0.80
resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasqhosts
[root@master ~]# docker restart dns-server
宿主机和其他局域网内机器配置
vim /etc/resolv.conf
nameserver 192.168.0.81这个一定要放在最上面
yum install bind-utils -y
nslookup测试解析
https://www.linuxidc.com/Linux/2016-08/134538.htm
https://www.linuxidc.com/Linux/2013-04/82073.htm
https://www.linuxidc.com/Linux/2016-08/134538.htm
https://coolex.info/blog/511.html
http://blog.csdn.net/yangxuan0261/article/details/74907034