docker 部署 coredns 构建内部 dns 解析
- coredns 官网
- CoreDNS 配置说明
coredns
是一个用 go 语言编写的 DNS 服务器- 目前,默认的
coredns
包含了大约30个插件,插件只有在被启用的时候才会创建响应
- 相比较
bind
,coredns
更轻量,也更具备扩展性- 加入了 CNCF 基金会
- 有现成的镜像可以直接使用
准备配置文件
本地创建目录,用来持久化配置文件
mkdir -p /approot/docker_volumes/coredns
配置文件内容
.:53 {
# 输出日志
log
# 输出错误
errors
ready
# 自定义域名解析
hosts /etc/coredns/hostsfile {
fallthrough
}
# CoreDNS 自身 metrics 数据接口。
## 可以通过http://localhost:9153/metrics获取 prometheus 格式的监控数据。
prometheus :9153
# 最后所有的都转发到系统配置的上游dns服务器去解析
# 如果多个 dns 服务器,可以写成:forward . 10.10.0.10 10.10.0.20
# 可以读取本地 resolv.conf 文件:forward . /etc/resolv.conf
forward . 114.114.114.114 114.114.115.119 {
max_concurrent 1000
}
# 缓存时间
cache 30
# 环路检测,如果检测到环路,则停止 CoreDNS
loop
# 自动加载配置文件
reload
# 循环 DNS 负载均衡器
loadbalance
}
hostsfile 的内容
192.168.18.222 localrepo.icu
启动 coredns
docker run -d \
--memory 200m \
--name coredns \
--restart always \
--network host \
-v /approot/docker_volumes/coredns:/etc/coredns \
registry.aliyuncs.com/google_containers/coredns:1.11.3 \
-conf /etc/coredns/corefile
验证端口,方法有很多,大家自己选择
ss -anput | grep 53
telnet 192.168.18.222 53
配置 resolv.conf
要把自己的 dns 服务器地址加到 resolv.conf 文件里面,本地才能找到对应的 dns 服务器
nameserver 192.168.18.222
验证 dns 解析
访问域名,看能不能返回状态码,这里的域名,是配置文件里面配置的
curl -I localrepo.icu
安装 bind-utils 解析工具,包含了 dig,host,nslookup 等命令
dig localrepo.icu
host localrepo.icu
nslookup localrepo.icu
只要能找到对应的 dns 服务器,能解析成功,表示 coredns 服务部署完成了
验证配置文件热更新
可以随意定义一个域名,或者现有的,修改一下 hostsfile,追加域名
能解析,说明配置文件加载成功了
dig xxx
host xxx
nslookup xxx
分类:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!