docker-compose部署coredns如何实现自建DNS服务

 更新时间:2025年01月06日 09:07:39   作者:学亮编程手记  
本文介绍了如何在内网中使用自建的CoreDNS服务进行域名解析,通过配置Corefile和hosts文件,实现内部域名解析,无需在互联网上注册域名,使用docker-compose运行CoreDNS,并通过修改resolv.conf文件配置DNS服务

docker-compose部署coredns实现自建DNS服务

在系统应用中,经常会遇到需要使用 https 域名通讯的需要,在内网中,我们不需要正式在互联网上注册域名,自建一个 dns 服务就能很好的解决问题。

基本应用

本文内网为使用 docker 运行一个 coredns 服务的代码示例:

  • docker-compose.yml 片段内容如下:
version: '3.7'
services:
        
	coredns:
		image: coredns/coredns:1.10.0
		container_name: coredns
		ports:
           - 53:53/udp
        volumes:
           - ./coredns/Corefile:/Corefile
  • 脚本中 Corefile 文件内容如下:
.:53 {
    hosts {
        192.168.1.11 test.com
        192.168.1.12 test1.com
        fallthrough
    }
    forward . 8.8.8.8:53 114.114.114.114:53
    log
}

其中 forward 指向上级 dns 服务

独立hosts文件方式

我们还可以将 hosts 独立出来为一个单独的文件,

  • 如下所示:
.:53 {
    hosts /etc/coredns/hostsfile {
        fallthrough
    }
    forward . 8.8.8.8:53 114.114.114.114:53
    log
}

其中 /etc/coredns/hostsfile 为内部域名解析映射文件,

  • 使用 docker-compose 的话你需要对应挂载出来:
version: '3.7'
services:

  coredns:
    image: coredns/coredns:1.10.0
    container_name: coredns
    ports:
      - 53:53/udp
    volumes:
      - ./coredns/hostsfile:/etc/coredns/hostsfile
      - ./coredns/Corefile:/Corefile
  • hostsfile 内容示例如下:
192.168.1.11 test.com
192.168.1.12 test1.com

使用

以 Linux 为例,修改配置文件 cat /etc/resolv.conf 设置 nameserver 为运行的这个 dns 服务IP地址即可,

  • 如下示例:
[root@localhost /]# cat /etc/resolv.conf 

# Generated by NetworkManager

nameserver 192.168.1.2

保持后就可以使用 nslookup 或者 ping 来验证内部域名解析是否正常了。

总结

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

相关文章

  • docker部署安装jenkins的实现步骤

    docker部署安装jenkins的实现步骤

    本文主要介绍了docker部署安装jenkins的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • docker部署RustDesk自建服务器的小结

    docker部署RustDesk自建服务器的小结

    本文详细介绍了如何使用Docker部署RustDesk自建服务器,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • Docker Registry 使用和部署方式

    Docker Registry 使用和部署方式

    Docker Registry是一个无状态、可扩展的服务器端应用程序,本文给大家介绍Docker Registry使用和部署方式,感兴趣的朋友一起看看吧
    2025-10-10
  • Docker中部署tomcat过程中遇到的问题及解决

    Docker中部署tomcat过程中遇到的问题及解决

    本文介绍了两个基于Tomcat的Docker容器常见问题的解决方法,包括端口映射问题和404错误问题,通过案例复现和问题解析,展示了如何正确设置端口映射以及如何将webapps.dist目录内容拷贝到webapps目录以解决404错误
    2025-11-11
  • 如何查看docker容器的内存占用

    如何查看docker容器的内存占用

    这篇文章主要介绍了如何查看docker容器的内存占用问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Centos7 安装部署Kubernetes(k8s)集群实现过程

    Centos7 安装部署Kubernetes(k8s)集群实现过程

    这篇文章主要为大家介绍了Centos7 安装部署Kubernetes(k8s)集群实现过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • dockerfile报错“/bin/sh -c yum -y install“问题及解决

    dockerfile报错“/bin/sh -c yum -y install“问

    文章主要讨论了解决Docker容器安装vim时出现错误的问题,指出是容器版本不兼容导致,建议使用Centos 7版本的容器,提供了一种解决方案,并鼓励读者参考此经验
    2026-05-05
  • docker compose入门helloworld的详细过程

    docker compose入门helloworld的详细过程

    docker-compose是基于docker的,所以我们需要先安装docker才能使用docker-compose,接下来通过本文给大家介绍docker compose入门helloworld的过程,一起看看吧
    2021-09-09
  • docker 搭建Mysql集群的方法示例

    docker 搭建Mysql集群的方法示例

    这篇文章主要介绍了docker 搭建Mysql集群的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Centos8无法安装docker问题的解决方法

    Centos8无法安装docker问题的解决方法

    这篇文章主要给大家介绍了关于Centos8无法安装docker问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论