本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

coredns-buildtest Docker 镜像下载 - 轩辕镜像

coredns-buildtest 镜像详细信息和使用指南

coredns-buildtest 镜像标签列表和版本信息

coredns-buildtest 镜像拉取命令和加速下载

coredns-buildtest 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

coredns-buildtest
coredns/coredns-buildtest
自动构建

coredns-buildtest 镜像详细信息

coredns-buildtest 镜像标签列表

coredns-buildtest 镜像使用说明

coredns-buildtest 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

用于在部署到实际仓库前测试自动化构建的Docker镜像
0 次下载activecoredns镜像

coredns-buildtest 镜像详细说明

coredns-buildtest 使用指南

coredns-buildtest 配置说明

coredns-buildtest 官方文档

CoreDNS Docker镜像文档

镜像概述和主要用途

CoreDNS 是一个用 Go 编写的灵活、高性能 DNS 服务器,基于插件链架构实现各类 DNS 功能。作为 Cloud Native Computing Foundation (CNCF) 孵化级项目,其核心优势在于灵活性:通过组合不同插件,可按需定制 DNS 数据处理逻辑,支持从简单的本地 DNS 服务到复杂的云原生环境 DNS 解析。

主要用途

  • 提供容器化环境(如 Kubernetes 集群)的 DNS 服务
  • 作为自定义 DNS 服务器,支持文件、etcd、Kubernetes 等多种后端
  • 实现 DNS 缓存、转发、负载均衡、日志记录、指标监控等增强功能
  • 替代传统 DNS 服务(如 BIND),满足云原生场景下的动态配置需求

核心功能和特性

多协议支持

  • 基础 DNS:UDP/TCP 协议(标准 DNS)
  • 安全 DNS:TLS(RFC 7858,即 DNS over TLS)
  • 扩展协议:gRPC(非标准,用于内部服务通信)

插件化架构

CoreDNS 通过插件链实现功能,支持以下核心能力(完整插件列表见 ***插件文档):

功能类别关键插件及说明
后端存储- file:从文件加载区域数据(支持 DNSSEC、AXFR 主服务器功能)
- kubernetes:以 Kubernetes 集群为后端(支持 Service/Endpoint 解析)
- etcd:使用 etcd 存储 DNS 记录(替代 SkyDNS)
- auto:自动从磁盘加载区域文件
数据处理- dnssec:实时签名区域数据
- rewrite/template:重写查询(类型、类别、名称)
- loadbalance:响应负载均衡
缓存与转发- cache:DNS 缓存
- forward/proxy:转发查询至其他递归 DNS 服务器
监控与日志- metrics:暴露 Prometheus 指标
- log:查询日志
- errors:错误日志
辅助功能- cache:DNS 缓存
- chaos:支持 CH 类查询(如 version.bind
- nsid:支持 RFC 5001 NSID 选项
- pprof:性能分析

其他特性

  • 轻量高效:Go 语言编写,资源占用低,性能优异
  • 可扩展性:支持自定义插件开发(见 外部插件文档)
  • 标准化:符合 DNS 相关 RFC 规范,兼容主流 DNS 客户端

使用场景和适用范围

1. Kubernetes 集群 DNS

作为 Kubernetes 集群默认 DNS 服务(替代 kube-dns),通过 kubernetes 插件动态解析 Service 和 Pod 域名,支持 Headless Service、StatefulSet 等场景。

2. 容器化环境 DNS

在 Docker 或其他容器平台中,作为自定义 DNS 服务器,通过 fileauto 插件提供静态 DNS 记录,或通过 forward 插件转发至外部 DNS。

3. DNS 缓存与加速

通过 cache 插件缓存 DNS 响应,减少重复查询,提升解析效率,适用于对 DNS 性能敏感的应用。

4. 自定义 DNS 规则

通过 rewritetemplate 插件修改查询参数(如重写域名、类型),实现复杂路由逻辑;通过 file 插件管理自定义区域文件(支持 DNSSEC)。

5. 监控与审计

结合 metrics 插件暴露 Prometheus 指标(如查询延迟、成功率),通过 log 插件记录查询日志,满足可观测性需求。

详细的使用方法和配置说明

基本使用流程

  1. 准备 CoreDNS 配置文件(Corefile
  2. 通过 Docker 运行镜像,挂载配置文件并映射端口

Docker 部署示例

1. 简单启动(默认配置)

若无需自定义配置,可直接运行镜像(默认可能使用极简 Corefile,仅启用 whoami 插件用于测试):

bash
docker run -d --name coredns -p 53:53/udp -p 53:53/tcp coredns/coredns

2. 挂载自定义 Corefile

CoreDNS 核心配置通过 Corefile 定义,需将本地配置文件挂载至容器内默认路径(通常为 /etc/coredns/Corefile):

本地 Corefile 示例(转发至 8.8.8.8 并启用日志):

corefile
.:53 {
  forward . 8.8.8.8:53  # 转发所有查询至 8.8.8.8
  log                   # 记录查询日志
  errors                # 记录错误日志
}

启动命令

bash
docker run -d --name coredns \
  -p 53:53/udp -p 53:53/tcp \
  -v $(pwd)/Corefile:/etc/coredns/Corefile \
  coredns/coredns

3. docker-compose 配置

创建 docker-compose.yml

yaml
version: '3'
services:
  coredns:
    image: coredns/coredns
    container_name: coredns
    ports:
      - "53:53/udp"
      - "53:53/tcp"
    volumes:
      - ./Corefile:/etc/coredns/Corefile
      - ./zones:/var/lib/coredns  # 挂载区域文件(若使用 file 插件)
    restart: unless-stopped
    networks:
      - dns-net

networks:
  dns-net:
    driver: bridge

启动:

bash
docker-compose up -d

Corefile 配置详解

Corefile 是 CoreDNS 的核心配置文件,采用“服务器块 + 插件配置”结构,格式如下:

corefile
[监听地址:]端口 {
  插件1 [参数...]
  插件2 [参数...]
  ...
}

常用插件配置示例

1. 转发至外部 DNS(forward 插件)

将所有查询转发至 8.8.8.8 和 1.1.1.1:

corefile
.:53 {
  forward . 8.8.8.8:53 1.1.1.1:53  # "." 表示匹配所有域名
  log                   # 记录查询日志到 stdout
  errors                # 记录错误日志到 stdout
  cache 300             # 缓存 300 秒(5 分钟)
}
2. Kubernetes 集群 DNS(kubernetes 插件)

为 Kubernetes 集群提供 DNS 服务(需在集群内运行,或配置 kubeconfig):

corefile
.:53 {
  kubernetes cluster.local in-addr.arpa ip6.arpa {  # 集群域名和反向区域
    pods insecure                                   # 允许解析 Pod IP(非安全模式)
    fallthrough in-addr.arpa ip6.arpa               # 未匹配的反向查询继续处理
  }
  forward . /etc/resolv.conf                        # 非集群域名转发至宿主机 DNS
  cache 30
  log
}
3. 文件服务静态 DNS 记录(file 插件)

从本地文件加载 example.org 区域数据:

corefile
example.org:53 {
  file /var/lib/coredns/example.org.zone  # 区域文件路径
  transfer to *                          # 允许所有 IP 进行区域传输(AXFR)
  dnssec                                 # 启用 DNSSEC 签名
  log
}
4. 启用 TLS 监听(TLS 插件)

通过 TLS 协议(DNS over TLS)提供服务:

corefile
tls://.:853 {  # 监听 853 端口(标准 DoT 端口)
  tls /etc/coredns/tls/cert.pem /etc/coredns/tls/key.pem  # 证书和密钥路径
  forward . 8.8.8.8:53
  log
}

配置参数说明

参数/文件说明
Corefile核心配置文件,定义监听地址、端口及插件链,默认路径通常为 /etc/coredns/Corefile
监听地址:端口格式为 [协议://]地址:端口,支持 dns://(默认,UDP/TCP)、tls://grpc://
插件参数不同插件参数不同,详见 ***插件文档

环境变量(参考)

CoreDNS 镜像可能支持以下环境变量(具体以镜像版本为准):

环境变量说明默认值示例
COREDNS_CONFIGCorefile 内容(替代文件挂载)
LOG_LEVEL日志级别(debug/info/warn/error)info
POD_IPKubernetes 环境中 Pod IP(用于自动配置)容器 IP

安全注意事项

  • 配置权限:Corefile 及区域文件需限制访问权限,避免敏感信息泄露
  • TLS 证书:启用 TLS 时,确保证书有效且密钥安全存储
  • 安全漏洞:若发现安全问题,请勿提交公开 issue,需发送至 ***,详情参见 安全发布流程

社区与资源

  • 网站:[]
  • 插件文档:[***]
  • GitHub 仓库:[***]
  • Slack 社区:#coredns 频道([***]

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"