docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker在Centos上做DNS服务器的配置

docker在Centos上做DNS服务器的配置全过程

作者:阿呆攻防

这篇文章主要介绍了docker在Centos上做DNS服务器的配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1. Docker安装DNS

1.1 安装docker

curl -sSL https://get.daocloud.io/docker | sh

1.2 启动docker服务

systemctl start docker

1.3 运行DNS容器

Docker使用sameersbn/bind搭建DNS服务器

docker run --name bind -d --restart=always --publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp --volume /srv/docker/bind:/data sameersbn/bind:9.16.1-20200524

测试时记得将本机的dns修改为dns服务器的地址,并且关闭ipv6的连接

运行成功访问https://ip:10000,注意此处是https非http

默认账号root,密码password

1.4 运行nginx容器

为测试提供一个域名访问网站路径

docker run --name nginx -d -p 80:80 nginx

1.5 docker相关问题解决

53端口占用:

netstat -ntlp|grep 53 
#查出pid
kill -9 pid

容器启动失败:

docker restart 容器ID

2.两种方式配置

2.1 手动配置文件进行域名拦截

拦截www.getcharzp.cn 这个域名到上面启动的nginx服务中

1.编辑/srv/docker/bind/bind/etc/named.conf.local文件中

vim /srv/docker/bind/bind/etc/named.conf.local

新增下面内容(正向解析:域名解析为IP地址)

zone "cn" {
        type master;
        file "/var/lib/bind/cn.hosts";
        };

2.在/srv/docker/bind/bind/lib下新增cn.hosts文件

vim /srv/docker/bind/bind/lib/cscn.hosts

下方的9d427dee11c8为自己docker容器的ID qq.qq.com为邮箱地址

$ttl 38400
cn.     IN      SOA     2bb72646050f. admin.qq.com (
                        1640000819
                        10800
                        3600
                        604800
                        38400 )
cn.     IN      NS      2bb72646050f.
my.cn.  IN      A       192.168.46.133

3.重启bind服务

docker restart bind

2.2 通过web界面进行域名拦截

2.2.1 访问后台

2.2.2 进入后台

Dashboard ==> Servers ==> BIND DNS Server

2.2.3 配置master zone

反向解析

正向解析

2.2.4 查看配置文件

根据手动配置文件位置去找或者点击如下图所示查看路径/配置文件内容

正向解析/反向解析原理相同

3. 测试

使用另一台机去测试

首先输入下面命令配置

vim /srv/docker/bind/bind/etc/resolv.conf

在里面加入条nameserver (DNS服务器IP),放在nameserver的第一条

测试方法有多种:

配置成功后,访问其他的肯定是不行的所以要将原来的nameserver改回去或者改成nameserver 8.8.8.8

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文