!Docker Pulls !Docker Build
一个基于PHP的Docker化动态DNS客户端,用于netcup DNS API。 本项目是[***]
适用于netcup域名用户需要动态更新DNS记录的场景,如家庭网络、动态IP环境下的服务器、需要IPv6动态解析的设备等,尤其适合需要分别管理IPv4和IPv6记录、或需在IP变更时自动重启相关服务的用户。
创建docker-compose文件,示例如下。注意:为从本地适配器获取IPv6地址,network_mode必须设为host。调试时,可覆盖默认命令(见示例)。若需在IPv6地址变更时重启其他容器,需将docker socket作为卷挂载到容器。将更新脚本的配置文件和msmtprc(如需邮件通知)作为卷挂载,并通过TZ环境变量设置时区。也可使用环境变量配置脚本设置(见下一节)。
yamlservices: dynamic-dns-netcup-updater: image: mm28ajos/docker-dynamic-dns-netcup-api:latest volumes: - /path/config.ini:/usr/src/dynamic-dns-netcup-api/config.ini # 脚本配置文件 - /path/msmtprc.conf:/root/.msmtprc # 邮件配置(如需) - /var/run/docker.sock:/var/run/docker.sock # 如需重启容器 network_mode: host # 调试时覆盖命令:command: php ./update-docker.php environment: - TZ=Europe/Berlin # 设置时区 restart: unless-stopped
yamlservices: dynamic-dns-netcup-updater: image: mm28ajos/docker-dynamic-dns-netcup-api:latest volumes: - /path/msmtprc.conf:/root/.msmtprc # 邮件配置(如需) - /var/run/docker.sock:/var/run/docker.sock # 如需重启容器 network_mode: host environment: - TZ=Europe/Berlin - CUSTOMERNR=*** # netcup客户编号 - APIKEY=abcdefghijklmnopqrstuvwxyz # API密钥 - APIPASSWORD=abcdefghijklmnopqrstuvwxyz # API密码 - DOMAIN=mydomain.com # 域名 - USE_IPV4=true # 启用IPv4更新 - HOST_IPv4=sub.subdomainA,server1.subdomainC # IPv4子域名(逗号分隔) - USE_FRITZBOX=false # 是否使用FritzBox获取IPv4 - FRITZBOX_IP=fritz.box # FritzBox IP(USE_FRITZBOX=true时需设置) - USE_IPV6=false # 启用IPv6更新 - HOST_IPv6=sub.subdomainB,server1.subdomainB # IPv6子域名(逗号分隔) - IPV6_INTERFACE=eth0 # IPv6网络接口 - NO_IPV6_PRIVACY_EXTENSIONS=true # 仅使用不带隐私扩展的IPv6地址 - CHANGE_TTL=true # 是否将TTL降至300秒 - SEND_MAIL=false # 启用邮件告警 - MAIL_RECIPIENT=*** # 邮件接收地址 - SLEEP_INTERVAL_SEC=5 # 检查间隔(秒) - RESTART_CONTAINERS=true # IP变更时重启容器 - CONTAINERS=containerA,ContainerB # 需重启的容器名(逗号分隔) restart: unless-stopped
挂载至/usr/src/dynamic-dns-netcup-api/config.ini,参数说明如下:
ini; netcup客户编号 CUSTOMERNR = *** ; API密钥和密码(从CCP获取) APIKEY = abcdefghijklmnopqrstuvwxyz APIPASSWORD = abcdefghijklmnopqrstuvwxyz ; 目标域名 DOMAIN = mydomain.com ; 启用IPv4更新 USE_IPV4 = true ; IPv4子域名(逗号分隔,@表示根域名,*表示通配符),不存在时自动创建记录 HOST_IPv4 = sub.subdomainA, server1.subdomainC ; 是否通过FritzBox获取IPv4 USE_FRITZBOX = false ; FritzBox IP(USE_FRITZBOX=true时必填,默认fritz.box) ; FRITZBOX_IP = fritz.box ; 启用IPv6更新(需IPv6网络环境,否则会报错) USE_IPV6 = false ; IPv6子域名(逗号分隔,格式同上) ; HOST_IPv6 = sub.subdomainB, server1.subdomainB ; IPv6网络接口(USE_IPV6=true时必填) ; IPV6_INTERFACE = eth0 ; 是否仅使用不带隐私扩展的IPv6地址(SLAAC) ; NO_IPV6_PRIVACY_EXTENSIONS = true ; 是否将TTL降至300秒(如需要) CHANGE_TTL = true ; 启用邮件告警(需配置msmtp) SEND_MAIL = false ; 邮件接收地址(SEND_MAIL=true时必填) ; MAIL_RECIPIENT = *** ; IP检查间隔(秒) SLEEP_INTERVAL_SEC = 5 ; IP变更时重启容器(需挂载docker socket) RESTART_CONTAINERS = false ; 需重启的容器名(RESTART_CONTAINERS=true时必填,逗号分隔) ; CONTAINERS = containerA,containerB
如需邮件告警,挂载至/root/.msmtprc,示例:
ini# 全局设置 defaults # 认证与TLS配置 auth on tls on tls_starttls off tls_certcheck on # 默认账户设置 account default add_missing_from_header on host "smtp.domain.tld" # SMTP服务器 port 465 # SMTP端口 domain "domain.tld" maildomain "domain.tld" user username # SMTP用户名 password "password" # SMTP密码 from "***" # 发件人地址
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429