镜像名称见:https://hub.docker.com/r/blazesnow/caddy/tags
Caddy 默认通过 HTTP-01 质询验证域名,要求 CA(如 Let's Encrypt)能从公网直接访问你的 80 端口。
每个插件对应一个独立镜像 tag,以 Cloudflare DNS 插件为例。
Tip
`docker run` 与 `docker compose` 二选一即可,效果相同。
docker run -d \
--name caddy \
-p 80:80 \
-p 443:443 \
-p 443:443/udp \
-e CF_API_TOKEN=your_api_token \
-v /path/to/Caddyfile:/etc/caddy/Caddyfile \
-v caddy_data:/data \
-v caddy_config:/config \
blazesnow/caddy:cloudflare
docker-compose.yml:
services:
caddy:
image: blazesnow/caddy:cloudflare
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
environment:
- CF_API_TOKEN=your_api_token
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
volumes:
caddy_data:
caddy_config:
在 compose 文件所在目录运行:
docker compose up -d
DNS 质询示例,凭据通过环境变量传递:
example.com {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
}
各插件的凭据环境变量名和格式因提供商而异,详见下方 ACME-DNS 章节中的表格。
/config,数据目录为 /data(镜像内通过 XDG_CONFIG_HOME / XDG_DATA_HOME 指定),建议挂载持久化<插件> / <插件>-alpine 基于 Alpine(默认、体积更小),<插件>-slim 基于 Debian slim以下内容摘自:https://caddyserver.com/docs/automatic-https#acme-challenges
DNS 质询会对候选主机名的 TXT 记录执行权威 DNS 查找,并查找具有特定值的特殊 TXT 记录。如果 CA 发现预期值,则会颁发证书。
此质询不需要任何开放端口,请求证书的服务器也无需可从外部访问。但是,DNS 质询需要配置。Caddy 需要知道访问您域名的 DNS 提供商的凭据,以便设置(和清除)特殊 TXT 记录。如果启用了 DNS 质询,则默认情况下会禁用其他质询。
由于 ACME CA 在查找 TXT 记录进行质询验证时遵循 DNS 标准,因此您可以使用 CNAME 记录将质询的应答委托给其他 DNS 区域。这可用于将 _acme-challenge 子域委托给另一个区域。如果您的 DNS 提供商不提供 API,或者 Caddy 的某个 DNS 插件不支持该 API,则此功能尤其有用。
本项目目前支持的提供商,各提供商使用说明见附链接:
使用说明:https://github.com/mholt/caddy-webdav
自2025年10月28日起,本软件以MIT的条款发布。
本软件中包含的Caddy软件遵守其原有的许可证。
Content type
Image
Digest
sha256:e4c8f8923…
Size
57.6 MB
Last updated
6 days ago
docker pull blazesnow/caddy:godaddy-slim