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

 更新时间:2025年06月03日 08:40:38   作者:阿呆攻防  
这篇文章主要介绍了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虚拟存储容量是否足够
  • 镜像下载完毕的情况下运行
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 访问后台

  • 账号: root 
  • 密码: password

2.2.2 进入后台

Dashboard ==> Servers ==> BIND DNS Server

2.2.3 配置master zone

反向解析

  • 勾选Reverse(Address to Names)
  • Domain name/Network 填入 IP
  • 输入随便一个Email address
  • 点击Create
  • 进入Zone
  • 点击Reverse Address
  • 创建后点击最后一张图的保存按钮
  • 最后到命令行输入docker restart bind

正向解析

  • 勾选Forward(Names to Address)
  • Domain name / Network填入域名
  • 随便输入Email address
  • 点击Create
  • 点击Address
  • 输入二级域名前缀
  • 输入IP地址
  • 点击create后点击右上角保存
  • 最后到命令行输入docker restart bind

2.2.4 查看配置文件

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

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

3. 测试

使用另一台机去测试

首先输入下面命令配置

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

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

测试方法有多种:

  • 直接浏览器访问是否存在nginx欢迎页面
  • 使用nslookup查看是否配置成功

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

总结

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

相关文章

  • Docker 集成KingBase的详细过程

    Docker 集成KingBase的详细过程

    这篇文章主要介绍了Docker 集成KingBase的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-04-04
  • docker搭建redis哨兵集群并且整合springboot的实现

    docker搭建redis哨兵集群并且整合springboot的实现

    本文主要介绍了docker搭建redis哨兵集群并且整合springboot的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • windows坏境下docker使用phpmyamin的权限问题解决

    windows坏境下docker使用phpmyamin的权限问题解决

    这篇文章主要为大家介绍了windows坏境下docker使用phpmyamin发生的权限问题解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • cgroup blkio子系统对容器的读写限速详解

    cgroup blkio子系统对容器的读写限速详解

    这篇文章主要为大家介绍了cgroup blkio子系统对容器的读写限速详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Docker中限制CPU和内存的使用的方法

    Docker中限制CPU和内存的使用的方法

    在容器化的动态世界中,Docker 已经成为构建、部署和管理容器化的关键工具应用,设置适当的内存和 CPU 限制对于优化 Docker 性能至关重要,确保每个容器在不使主机负担过重的情况下获得必要的资源,本文将深入探讨有效设置这些限制的实用策略,需要的朋友可以参考下
    2025-01-01
  • docker build -t 和 docker build -f 区别解析

    docker build -t 和 docker build -f 区别解析

    docker build 是用于构建Docker镜像的命令,它允许你基于一个Dockerfile来创建一个镜像,在 docker build 命令中,有两个常用的选项 -t 和 -f,它们有不同的作用,这篇文章主要介绍了docker build -t 和 docker build -f 区别,需要的朋友可以参考下
    2023-08-08
  • Docker 部署分布式搜索引擎 Elastic Search的详细过程

    Docker 部署分布式搜索引擎 Elastic Search的详细过程

    Elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容,这篇文章主要介绍了Docker 部署分布式搜索引擎 Elastic Search,需要的朋友可以参考下
    2023-02-02
  • docker容器下配置jupyter notebook的操作

    docker容器下配置jupyter notebook的操作

    这篇文章主要介绍了docker容器下配置jupyter notebook的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker 镜像调试的最佳实践

    Docker 镜像调试的最佳实践

    本文主要介绍了Docker 镜像调试的最佳实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • 聊聊Docker不适合跑 MySQL 的N个原因

    聊聊Docker不适合跑 MySQL 的N个原因

    容器是为了解决“在切换运行环境时,如何保证软件能够正常运行”这一问题,这篇文章主要介绍了Docker 为什么不适合跑 MySQL?有N个原因,需要的朋友可以参考下
    2022-12-12

最新评论