1. 概述

DockerHub中的 sameersbn/bind 镜像提供了搭建DNS服务器的功能,本文给出使用该镜像搭建DNS服务器的例子。

2. 环境

DNS服务器主机 IP:10.11.150.73  域名:master.open.com

客户端1的 IP:10.11.150.74  域名:node.open.com

客户端2的 IP:10.11.150.75  域名:node2.open.com

测试环境中73、74、75机不能连接DockerHub,中转机可连接73、74、75机和DockerHub。

3. 搭建

3.1 导入sameersbn/bind镜像

在中转机中下载sameersbn/bind镜像:

docker pull sameersbn/bind:latest

将镜像存出为tar包:

docker save -o sameersbn_bind.tar sameersbn:bind

通过scp将tar包复制到73机的/opt/scs/openxxs/目录下(任意具有读写权限的目录均可):

scp sameersbn_bind.tar scs@10.11.150.73:/opt/scs/openxxs/

在73机上将镜像导入:

docker load --input sameersbn_bind.tar

此时在73机上即有了sameersbn/bind的镜像了:

3.2 新建并启动DNS服务器容器

在73机运行如下命令新建并启动容器:

docker run --name='bind' -d -p :/udp -e WEBMIN_ENABLED=false -v /opt/scs/openxxs/bind:/data sameersbn/bind:latest

其中--name是将该容器命名为bind;-p 开放53:53/udp端口便于其它主机访问DNS服务器;sameersbn/bind镜像本身安装了一个webmin服务,提供浏览器界面供用户配置域名项,本文通过修改配置文件进行DNS设置,因此通过 -e WEBMIN_ENABLED=false 禁用webmin的服务;-v 挂载73主机的/opt/scs/openxxs/bind目录(也可为其它目录),新建容器后将在该目录下生成bind/ect和bind/lib目录,其中etc目录下为DNS的相关配置文件。

3.3 参数配置

修改73、74、75主机的 /etc/resolv.conf 文件,添加如下内容,表示使用73机作为DNS服务器之一:

nameserver 10.11.150.73

在/opt/scs/openxxs/bind/bind/etc目录下,打开named.conf文件,内容如下:

可看出DNS的相关配置信息被分为了named.conf.options、named.conf.local和named.conf.default-zones三个文件。打开named.conf.options文件,修改allow-query 和 allow-transfer 字段为如下内容,表示允许73、74、75机使用73机上的DNS服务。

打开named.conf.local文件,增加正向解析和反向解析(注意每个zone后面要加上分号):

基于db.local新建正向解析文件forward.open(与named.conf.local中的命名一致):

cp db.local forward.open

内容如下:

基于db.127新建反向解析文件reverse.open(与named.conf.local中的命名一致):

cp db. reverse.open

内容如下:

修改了配置文件之后,需要进入bind容器中重新加载配置文件:

docker exec -i -t bind bash

进入bind容器后,里面的 /etc/bind 目录对应的就是73主机中的 /opt/scs/openxxs/bind/bind/etc 目录。先执行如下命令对配置文件的语法进行检查:

named-checkconf

语法没有问题后,使用rndc命令重新加载配置信息:

rndc reconfig

如果只是修改了某个区域的一些条目,则更新该区域即可,如下命令更新了open.com区域:

rndc reload open.com

3.4 测试

在73机上测试如下,成功:

在74机上测试如下,成功:

通过Docker配置DNS服务器的更多相关文章

  1. 在Debian上用Bind 配置DNS服务器

    1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,D ...

  2. 烂泥:centos安装及配置DNS服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要在centos配置DNS服务器,要先安装DNS软件BIND.当然我们也可以安装其他的DNS软件,比如国内的开源DNS软件DNSPod. 在此我们以通过 ...

  3. 如何配置DNS服务器(局域网——域名指向某个IP地址)

    单击“开始”,指向“管理工具”,然后单击“DNS”,打开 DNS 管理器.   如有必要,向管理单元添加适用的服务器,然后连接该服务器.在控制台树中,单击适用的 DNS 服务器.   在“操作”菜单上 ...

  4. 配置DNS服务器IP

    #############################脚本功能及说明#################### #该脚本用来在本地服务器上配置DNS服务器IP #创建时间:2014-10-22 ## ...

  5. Linux下搭建Oracle11g RAC(2)----配置DNS服务器,确认SCAN IP可以被解析

    从Oracle 11gR2开始,引入SCAN(Single Client Access Name) IP的概念,相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCAN IP和SCAP IP  ...

  6. centOS7配置DNS服务器

    世上无难事只怕有心人,遇事千万千万不要抵触,消极的情绪是失败之母,一点一滴,踏踏实实是通往幸福的捷径. 历经激动,受挫,抵触和鼓励以及征服,终于配好了让我欢喜让我忧的dns.在这里记录下来,希望能够给 ...

  7. CentOS7安装和配置dns服务器

    (1)dns介绍 1.基本介绍 名字解析: NetBIOS名:localhost wins hosts FQDN:完全限定域名,www.baidu.com hosts文件: 作用:实现名字解析,主要为 ...

  8. Docker配置 DNS

    Docker 没有为每个容器专门定制镜像,那么怎么自定义配置容器的主机名和 DNS 配置呢? 秘诀就是它利用虚拟文件来挂载到来容器的 3 个相关配置文件. 在容器中使用 mount 命令可以看到挂载信 ...

  9. docker配置dns与容器的访问控制(6)

    Docker 没有为每个容器专门定制镜像,那么怎么自定义配置容器的主机名和DNS配置?秘诀就是它利用虚拟文件来挂载到容器的3个相关的配置文件. 进入容器内使用mount命令可以看到挂载信息,这种机制可 ...

随机推荐

  1. Shell 内置操作符-字符串处理(汇总)

    一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-D ...

  2. 【J2EE】Hibernate

    Hibernate是面向Java环境的对象/关系数据库映射工具,管理Java应用和数据库之间的映射关系,提供数据查询和获取数据的方法,可以大幅减少使用JDBC处理数据持久化的时间. 使用Eclipse ...

  3. SQLserver查询数据库所有字段-表名

    SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT (case when a.colorder=1 t ...

  4. 微软开放技术(中国)携 CKAN 和 OData 技术引入基于 Azure 的开放数据平台

    今天,微软开放技术(中国)通过微软公有云Azure引入一个全新的开放数据平台,该平台基于开源数据门户解决方案 CKAN,以及由微软开放技术(中国)特别针对中国市场优化的ODATA插件来增强其国际化和本 ...

  5. C++实现禁忌搜索解决TSP问题

    C++实现禁忌搜索解决TSP问题 使用的搜索方法是Tabu Search(禁忌搜索) 程序设计 1) 文件读入坐标点计算距离矩阵/读入距离矩阵 for(int i = 0; i < CityNu ...

  6. text-overflow 与 word-wrap:设置使用一个省略标记...标示对象内文本的溢出。

    text-overflow 与 word-wrap text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出. 语法: 但是text-overflow只是用来说明文字溢出时 ...

  7. Phantom omini设备开发流程

    最近在忙着做毕业设计,我的毕业设计是做力觉临场感的,所以在力反馈设备Phantom Omini,由于整个设备是国外的国内的资料很少,我是14年拿到这个设备的但是真的是在开发是在16年了,中间有很多事没 ...

  8. AlarmManager使用注意事项

    在使用AlarmManager实现闹钟需要注意的是,intent和pendingintend的context如果是activity,那么当activity回收之后,context对象则不能被Alarm ...

  9. Spring MVC 环境搭建(一)

    一.建立 JavaWeb 项目 1.建立一个 Java 项目. 2.在项目下新建一个文件夹 webapp (命名可自取,这个目录即是网站根目录),再在该文件夹下新建一个 WEB-INF 文件夹(命名固 ...

  10. 我是一只it小小鸟阅读笔记

    “我们具有各自的独特性--我们兴趣各异,有不同的家庭背景,不同的知识储备,不同的思维方式……但在现实中,我们也会碰到类似的人生选择的关口,我们会犯类似的错误,有类似的迷惘,也会为类似的精彩鼓掌,而且很 ...