本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

CoreDNS 是一个用 Go 编写的灵活、高性能 DNS 服务器,基于插件链架构实现各类 DNS 功能。作为 Cloud Native Computing Foundation (CNCF) 孵化级项目,其核心优势在于灵活性:通过组合不同插件,可按需定制 DNS 数据处理逻辑,支持从简单的本地 DNS 服务到复杂的云原生环境 DNS 解析。
主要用途:
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:性能分析 |
作为 Kubernetes 集群默认 DNS 服务(替代 kube-dns),通过 kubernetes 插件动态解析 Service 和 Pod 域名,支持 Headless Service、StatefulSet 等场景。
在 Docker 或其他容器平台中,作为自定义 DNS 服务器,通过 file 或 auto 插件提供静态 DNS 记录,或通过 forward 插件转发至外部 DNS。
通过 cache 插件缓存 DNS 响应,减少重复查询,提升解析效率,适用于对 DNS 性能敏感的应用。
通过 rewrite 或 template 插件修改查询参数(如重写域名、类型),实现复杂路由逻辑;通过 file 插件管理自定义区域文件(支持 DNSSEC)。
结合 metrics 插件暴露 Prometheus 指标(如查询延迟、成功率),通过 log 插件记录查询日志,满足可观测性需求。
Corefile)若无需自定义配置,可直接运行镜像(默认可能使用极简 Corefile,仅启用 whoami 插件用于测试):
docker run -d --name coredns -p 53:53/udp -p 53:53/tcp coredns/coredns
CoreDNS 核心配置通过 Corefile 定义,需将本地配置文件挂载至容器内默认路径(通常为 /etc/coredns/Corefile):
本地 Corefile 示例(转发至 8.8.8.8 并启用日志):
.:53 { forward . 8.8.8.8:53 # 转发所有查询至 8.8.8.8 log # 记录查询日志 errors # 记录错误日志 }
启动命令:
docker run -d --name coredns \ -p 53:53/udp -p 53:53/tcp \ -v $(pwd)/Corefile:/etc/coredns/Corefile \ coredns/coredns
创建 docker-compose.yml:
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
启动:
docker-compose up -d
Corefile 是 CoreDNS 的核心配置文件,采用“服务器块 + 插件配置”结构,格式如下:
[监听地址:]端口 { 插件1 [参数...] 插件2 [参数...] ... }
将所有查询转发至 8.8.8.8 和 1.1.1.1:
.:53 { forward . 8.8.8.8:53 1.1.1.1:53 # "." 表示匹配所有域名 log # 记录查询日志到 stdout errors # 记录错误日志到 stdout cache 300 # 缓存 300 秒(5 分钟) }
为 Kubernetes 集群提供 DNS 服务(需在集群内运行,或配置 kubeconfig):
.: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 }
从本地文件加载 example.org 区域数据:
example.org:53 { file /var/lib/coredns/example.org.zone # 区域文件路径 transfer to * # 允许所有 IP 进行区域传输(AXFR) dnssec # 启用 DNSSEC 签名 log }
通过 TLS 协议(DNS over TLS)提供服务:
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_CONFIG | Corefile 内容(替代文件挂载) | 无 |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
POD_IP | Kubernetes 环境中 Pod IP(用于自动配置) | 容器 IP |
***,详情参见 安全发布流程



免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429