
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://img.shields.io/badge/Docker%20Hub%20-%20serfriz%2Fcaddy--duckdns%20-%20%230db7ed?style=flat&logo=docker](https://hub.docker.com/r/serfriz/caddy-duckdns) https://img.shields.io/badge/GitHub%20-%20serfriz%2Fcaddy--duckdns%20-%20%23333?style=flat&logo=github](https://ghcr.io/serfriz/caddy-duckdns) https://img.shields.io/badge/Quay%20-%20serfriz%2Fcaddy--duckdns%20-%20%23CC0000?style=flat&logo=redhat](https://quay.io/serfriz/caddy-duckdns)
https://img.shields.io/github/v/release/serfriz/caddy-custom-builds?label=Release](https://github.com/serfriz/caddy-custom-builds/releases) https://img.shields.io/github/actions/workflow/status/serfriz/caddy-custom-builds/build.caddy-duckdns.yml?label=Build](https://github.com/serfriz/caddy-custom-builds/actions/workflows/build.caddy-duckdns.yml)
本镜像是基于官方 https://hub.docker.com/_/caddy 镜像构建的自定义版本,集成了 DuckDNS DNS 模块,用于支持通过 DNS-01 挑战完成 ACME 证书验证。镜像通过 GitHub Actions 自动构建更新,当 https://github.com/caddyserver/caddy 官方发布新版本时,会自动同步更新。
可从以下容器仓库拉取镜像:
| 仓库名称 | 拉取命令 |
|---|---|
| Docker Hub | docker pull serfriz/caddy-duckdns:latest |
| GitHub Packages | docker pull ghcr.io/serfriz/caddy-duckdns:latest |
| Quay | docker pull quay.io/serfriz/caddy-duckdns:latest |
镜像提供以下标签:
latest:最新稳定版,跟踪 Caddy 官方最新版本。<version>:特定版本标签,如 2.7.4、2.7、2 等,对应 Caddy 官方版本号。4.3.1 Docker Run 部署
bashdocker run -d \ --name caddy-duckdns \ --restart unless-stopped \ -p 80:80 \ -p 443:443 \ -v /path/to/Caddyfile:/etc/caddy/Caddyfile \ -v caddy_data:/data \ -v caddy_config:/config \ -e DUCKDNS_TOKEN="your_duckdns_token" \ serfriz/caddy-duckdns:latest
参数说明:
-p 80:80/-p 443:443:映射 HTTP/HTTPS 端口(根据实际需求调整)。-v /path/to/Caddyfile:/etc/caddy/Caddyfile:绑定挂载自定义 Caddyfile 配置文件。-v caddy_data:/data:持久化存储证书、日志等数据(推荐使用卷而非绑定挂载)。-v caddy_config:/config:存储 Caddy 运行时配置。-e DUCKDNS_TOKEN:DuckDNS 令牌(必填,用于 DNS-01 验证,从 DuckDNS 控制台获取)。4.3.2 Docker Compose 部署
创建 docker-compose.yml 文件:
yamlversion: "3.8" services: caddy: image: serfriz/caddy-duckdns:latest container_name: caddy-duckdns restart: unless-stopped ports: - "80:80" # HTTP 端口(可根据需求调整) - "443:443" # HTTPS 端口(可根据需求调整) volumes: - ./Caddyfile:/etc/caddy/Caddyfile # 绑定自定义 Caddyfile - caddy_data:/data # 持久化证书和数据 - caddy_config:/config # 持久化运行时配置 environment: - DUCKDNS_TOKEN=your_duckdns_token # 替换为实际的 DuckDNS 令牌 volumes: caddy_data: caddy_config:
启动服务:
bashdocker-compose up -d
以下为集成 DuckDNS 模块的 Caddyfile 配置示例,用于为 DuckDNS 域名自动申请 SSL 证书:
caddyfile# 替换为你的 DuckDNS 域名(如 example.duckdns.org) example.duckdns.org { reverse_proxy 192.168.1.100:8080 # 反向代理到后端服务(根据实际情况调整) # 配置 TLS 证书,使用 DuckDNS 模块进行 DNS-01 验证 tls { dns duckdns { token {$DUCKDNS_TOKEN} # 引用环境变量中的 DuckDNS 令牌 } } }
说明:
{$DUCKDNS_TOKEN}:从环境变量读取 DuckDNS 令牌,需确保容器启动时通过 -e DUCKDNS_TOKEN=xxx 传入。dns duckdns:指定使用 DuckDNS 模块进行 DNS-01 挑战验证。| 环境变量名 | 作用 | 必要性 | 示例值 |
|---|---|---|---|
DUCKDNS_TOKEN | DuckDNS 账户 API 令牌 | 必需 | abc123def456ghi789jkl012mno |
/data 和 /config 目录,避免容器重建导致证书和配置丢失。本镜像的构建脚本及相关代码基于 https://github.com/serfriz/caddy-custom-builds/blob/main/LICENSE 开源,确保用户可自由使用、修改和分发,同时要求源代码保持公开可访问。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务