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

 更新时间:2017年12月12日 09:08:06   作者:dounine  
本篇文章介绍了Docker 1分钟搭建DNS服务器的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

使用指南

下载镜像

docker pull docker-dnsmasq

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

#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
...

运行容器

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帐号密码登录。

dnsmasq界面

DNS配置

  1. 在/etc/resolv.conf文件前面增加下面两句
  2. 只增加172.17.205.28 DNS会解析失败
nameserver 127.0.0.1     #必填
nameserver 172.17.205.28   #必填[本机主要网卡]
...

测试

  1. 本机与其它机子的配置一样
  2. 必填要在前面加才会生效,因为DNS解析会从上往下解析
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

增加解析

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

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. 否则有可能会出现如下问题
root@asdf ~# ping h0
ping: h0: Name or service not known

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Docker存储目录问题以及如何修改Docker默认存储位置

    Docker存储目录问题以及如何修改Docker默认存储位置

    在Docker中,默认情况下数据存储路径为/var/lib/docker,随着容器和镜像数量的增加,这可能会占用大量磁盘空间,这篇文章主要给大家介绍了关于Docker存储目录问题以及如何修改Docker默认存储位置的相关资料,需要的朋友可以参考下
    2024-08-08
  • Docker自定义JDK镜像并拉取至阿里云镜像仓库超详细攻略

    Docker自定义JDK镜像并拉取至阿里云镜像仓库超详细攻略

    Docker仓库是集中存放镜像的地方,分为公共仓库和私有仓库,这篇文章主要给大家介绍了关于Docker自定义JDK镜像并拉取至阿里云镜像仓库的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • docker部署nginx并且实现https的方法步骤

    docker部署nginx并且实现https的方法步骤

    启用HTTPS可以提高网站的安全性、可信度,同时符合法规要求,本文主要介绍了docker部署nginx并且实现https的方法步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • 使用Docker部署Tomcat的实现示例

    使用Docker部署Tomcat的实现示例

    在本地编写好了Spring项目,为了实现能够随时地访问,所以需要将项目部署到服务器,本文主要介绍了使用Docker部署Tomcat的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Docker 容器之间的互相通信实现示例

    Docker 容器之间的互相通信实现示例

    本文主要介绍了Docker 容器之间的互相通信实现示例,通过创建自定义网络,你可以轻松地在 Docker 容器之间建立通信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • Docker制作YashanDB镜像的使用方法

    Docker制作YashanDB镜像的使用方法

    本文详细讲解了如何制作YashanDB的Docker镜像,并通过实例展示了实际操作过程,特别是在跨平台应用中,Docker镜像提供了一致的环境,避免了环境差异导致的诸多问题,此外,文章还探讨了优化镜像体积、数据持久化及CI/CD集成等更深入的内容,感兴趣的可以了解一下
    2024-10-10
  • docker服务假死的解决方法

    docker服务假死的解决方法

    工作中使用docker-compose部署容器,有时候会出现使用docker-compose stop或docker-compose down命令想停掉容器,但是依然无法停止或者一直卡顿在停止中的阶段,所以本文给大家介绍了docker服务假死的解决方法,需要的朋友可以参考下
    2023-12-12
  • 使用docker-compose,如何调整JVM参数

    使用docker-compose,如何调整JVM参数

    这篇文章主要介绍了使用docker-compose,如何调整JVM参数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker Volumn容器间共享数据的实现

    Docker Volumn容器间共享数据的实现

    这篇文章主要介绍了Docker Volumn容器间共享数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Docker安装Redis容器的实现步骤

    Docker安装Redis容器的实现步骤

    本文主要介绍了Docker安装Redis容器的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论