
octodns/cloudflareOctoDNS 是一款实现“DNS即代码”(DNS as Code)的工具,支持跨多个DNS提供商管理DNS配置。OctoDNS Docker镜像将OctoDNS及其插件封装为容器化应用,提供便捷的部署与使用方式,适用于需要通过代码化方式管理DNS记录的场景。
OctoDNS Docker镜像提供以下变体,分别针对不同DNS提供商优化:
octodns/octodns(全功能版)octodns/azureoctodns/cloudflareoctodns/constellixoctodns/digitaloceanoctodns/dnsimpleoctodns/dnsmadeeasyoctodns/dynoctodns/ns1octodns/powerdnsoctodns/route53octodns/cloudflare),减少不必要依赖octodns/octodns),统一管理跨平台DNS配置config.yaml),定义DNS提供商认证信息与管理策略zones目录)通过docker run命令运行容器,核心参数说明:
-v "$(pwd):/octodns":挂载当前目录至容器内工作目录/octodns,用于读取配置文件--workdir /octodns:设置容器工作目录为/octodnsoctodns/cloudflare)octodns-sync同步配置,octodns-validate校验配置)示例:使用Cloudflare变体同步DNS配置
bashdocker run -v "$(pwd):/octodns" --workdir /octodns octodns/cloudflare octodns-sync
config.yaml和DNS记录文件的目录挂载至容器/octodnsconfig.yaml配置,建议通过环境变量或密钥管理工具注入,避免硬编码--dry-run预览同步结果、--debug开启调试日志创建docker-compose.yml:
yamlversion: '3' services: octodns: image: octodns/cloudflare volumes: - ./dns-config:/octodns # 本地dns-config目录包含config.yaml和zones working_dir: /octodns command: octodns-sync --dry-run # 先执行 dry-run 预览变更
运行命令:
bashdocker-compose up
通过Cron定时执行DNS同步:
bash# 每天凌晨3点执行同步 0 3 * * * docker run -v "/path/to/dns-config:/octodns" --workdir /octodns octodns/cloudflare octodns-sync >> /var/log/octodns-sync.log 2>&1
如需添加支持其他DNS提供商的镜像变体:
newprovider),并在目录中添加requirements.txtrequirements.txt中指定对应Provider依赖(如octodns-newprovider)更新OctoDNS版本时,仅需修改全功能版镜像的all/requirements.txt中OctoDNS核心版本号,该版本将自动同步至所有提供商特定变体。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务