1. 首页 > 云服务器

Docker 1分钟搭建DNS服务器的方法

这里我们使用dnsmasq对应的docker版本docker-dnsmasq。

使用指南

下载镜像

?

1
docker pull docker-dnsmasq

创建最简单的配置/opt/dnsmasq.conf

?

1

2

3

4

5

6

7

8
#dnsmasq config, for a complete example, see:

# http://oss.segetech.com/intra/srv/dnsmasq.conf

#dns解析日志

log-queries

#定义主机与ip映射

address=/h0/172.17.205.28

address=/h1/172.17.205.32

...

运行容器

?

1

2

3

4

5

6

7

8

9

10

11
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

参数说明

名称 说明
max-size 日志最大保存
http_user 登录用户名
http_pass 登录密码

访问地扯http://localhost:8080

使用admin/admin帐号密码登录。

Docker 1分钟搭建DNS服务器的方法

dnsmasq界面

dns配置

  1. 在/etc/resolv.conf文件前面增加下面两句
  2. 只增加172.17.205.28 dns会解析失败
?

1

2

3
nameserver 127.0.0.1 #必填

nameserver 172.17.205.28 #必填[本机主要网卡]

...

测试

  1. 本机与其它机子的配置一样
  2. 必填要在前面加才会生效,因为dns解析会从上往下解析
?

1

2

3

4

5

6

7

8
root@center ~# ping h1

ping h1 (172.17.205.32) 56(84) bytes of data.

64 bytes from 172.17.205.32 (172.17.205.32): icmp_seq=1 ttl=64 time=0.155 ms

64 bytes from 172.17.205.32 (172.17.205.32): icmp_seq=2 ttl=64 time=0.203 ms

^c

--- h1 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 1000ms

rtt min/avg/max/mdev = 0.155/0.179/0.203/0.024 ms

增加解析

点击保存即可,过几秒可自动生效

?

1

2

3

4

5

6
address=/h0/172.17.205.28

address=/h1/172.17.205.32

address=/h2/172.17.205.33

address=/h3/172.17.205.34

address=/h4/172.17.205.35

....

注意

  1. 建议保持其它机子的hostname与上面的配置一样
  2. 否则有可能会出现如下问题

联系我们

在线咨询:点击这里给我发消息

Q Q:1524578900