【Linux】使⽤ docker 部署 DNS 服务器
发布作者:微思网络 发布时间:2025-07-14 浏览量:0次
系统环境:CentOS 8 Stream
容器环境:podman 4.0.2
安装容器⼯具
下载容器映像
创建容器的持久化⽬录
启动容器
浏览器访问
切换界⾯为中⽂
更新 Webmin ⾯板版本
更新软件
配置 DNS
9.1 创建⼀个主区域9.2 创建 DNS 正向解析
9.3 创建 DNS 反向解析
9.4 创建解析记录
9.5 验证 DNS
可以是 docker 也可以是 podman 都是⼀样的。
本⽂档以 podman 为例,安装 podman 兼容 docker ⼯具,就可以⽤ docker 命令操作 podman
yum -y install podman
yum -y install podman-docker # 安装该包可使⽤ docker 命令操作 podman
docker pull docker.io/sameersbn/bind
该⽬录⽤于保存容器内所有配置的 DNS 数据
mkdir -p /opt/dns
给容器取名为 bind,并将容器内的数据保存到 /opt/dns ⽬录下。并暴露 53 和 10000 端⼝
端⼝解释:
53 TCP 和 UDP 端⼝⽤于提供 DNS 服务
10000 TCP 是 webmin 的管理⾯板
docker run -d --name bind \
--publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp \
-v /opt/dns:/data:Z sameersbn/bind:latest
https://你的宿主机的IP:10000
⽤户名:root
密码:password
如果浏览器⻓时间没反应,估计是容器卡了,直接重启容器即可
docker restart bind
管理界⾯登录
点击左侧栏的 "Webmin" —>"Change Language and Theme"
点击 Personal choice 并选择中⽂
再次重新刷新⻚⾯即可全部⽣效
点击左侧栏的"仪表盘",可以看到默认提⽰要更新软件
点击 "Upgrade Webmin Now" 即可,然后耐⼼等待
正在下载软件包
⼀会,web 界⾯会提⽰如下报错。这是因为升级了软件包导致
再次重新启动容器,然后刷新浏览器
docker restart bind
此时⻚⾯可能会提⽰你重启 Webmin,点击即可,然后刷新
也可能不会有提⽰,没有就忽略。接下来准备更新容器内的软件
点击左侧栏的"系统",找到"软件包更新",然后点击更新所有软件包
这⼀步需要等待多久取决于⽹速了。
安装完成后,再次重启容器
docker restart bind
区域类型选择:正向
域名/⽹络:⾃⼰填写,如填写 example.com 则后续这个将作为整个域。后续如创建⼀个主机解析,主机名为 nfs,则该主机域名为nfs.example.com
Email 地址:随便填
点击新建后,会看到 编辑主区域 的界⾯,直接⽆视。点击最下⾯的返回区域列表
按照 9.1 步骤,再次点击创建新的主区域。但这次:
区域类型选择:逆向
域名/⽹络:选择你的 IP 地址段,假设你需要解析 192.168.157.0/24 的⽹络,那么就填"192.168.157"
Email 地址:同正向解析填的⼀样即可
⼀样,创建完后⽆需编辑区域,直接返回到区域列表即可
此时就可以看到你创建的域了。要添加主机解析记录,点击正向区域
然后点击地址
添加域名和对应的 IP 地址,然后新建即可
新建完成后,就可以看到⾃⼰创建的记录
❖ 每添加⼀个解析条⽬,必须重启容器才能⽣效。
❖ 所以建议⼀次性添加好,然后重启容器
docker restart bind
将其他机器的 DNS 设置为 DNS 服务器的IP地址,并验证
[root@localhost ~]# ping gateway.xmws.cn
PING gateway.xmws.cn (192.168.157.2) 56(84) bytes of data.
64 bytes from gateway.xmws.cn (192.168.157.2): icmp_seq=1 ttl=128 time=0.070 ms
64 bytes from gateway.xmws.cn (192.168.157.2): icmp_seq=2 ttl=128 time=0.209 ms
64 bytes from gateway.xmws.cn (192.168.157.2): icmp_seq=3 ttl=128 time=0.222 ms
可以看到解析成功。如果想要使⽤短主机名进⾏解析,则需要设置机器的搜索域为 xmws.cn
[root@localhost ~]# ping gateway
PING gateway.xmws.cn (192.168.157.2) 56(84) bytes of data.
64 bytes from gateway.xmws.cn (192.168.157.2): icmp_seq=1 ttl=128 time=0.132 ms
64 bytes from gateway.xmws.cn (192.168.157.2): icmp_seq=2 ttl=128 time=0.197 ms
64 bytes from gateway.xmws.cn (192.168.157.2): icmp_seq=3 ttl=128 time=0.151 ms