本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Caddy Docker 维护团队
Caddy 社区论坛
(关于“Shared 标签”和“Simple 标签”的区别,参见 FAQ)
2.10.2-alpine, 2.10-alpine, 2-alpine, alpine2.10.2-builder-alpine, 2.10-builder-alpine, 2-builder-alpine, builder-alpine2.10.2-windowsservercore-ltsc2022, 2.10-windowsservercore-ltsc2022, 2-windowsservercore-ltsc2022, windowsservercore-ltsc20222.10.2-windowsservercore-ltsc2025, 2.10-windowsservercore-ltsc2025, 2-windowsservercore-ltsc2025, windowsservercore-ltsc20252.10.2-builder-windowsservercore-ltsc2022, 2.10-builder-windowsservercore-ltsc2022, 2-builder-windowsservercore-ltsc2022, builder-windowsservercore-ltsc20222.10.2-builder-windowsservercore-ltsc2025, 2.10-builder-windowsservercore-ltsc2025, 2-builder-windowsservercore-ltsc2025, builder-windowsservercore-ltsc20252.10.2, 2.10, 2, latest:
2.10.2-alpine2.10.2-windowsservercore-ltsc20222.10.2-windowsservercore-ltsc20252.10.2-builder, 2.10-builder, 2-builder, builder:
2.10.2-builder-alpine2.10.2-builder-windowsservercore-ltsc20222.10.2-builder-windowsservercore-ltsc20252.10.2-windowsservercore, 2.10-windowsservercore, 2-windowsservercore, windowsservercore:
2.10.2-windowsservercore-ltsc20222.10.2-windowsservercore-ltsc2025(更多信息)
amd64, arm32v6, arm32v7, arm64v8, ppc64le, riscv64, s390x, windows-amd64
repo-info 仓库的 repos/caddy/ 目录(历史记录)
(包含镜像元数据、传输大小等)
official-images 仓库的 library/caddy 标签
official-images 仓库的 library/caddy 文件(历史记录)
docs 仓库的 caddy/ 目录(历史记录)
!logo
Caddy 2 是一款功能强大、企业级的开源 Web 服务器,支持自动 HTTPS,使用 Go 语言编写。
Caddy 需要对两个目录有写入权限:数据目录 和 配置目录。配置目录的文件无需持久化,但数据目录必须持久化——数据目录不可视为缓存,其内容(如 TLS 证书、私钥、OCSP 装订等)对 Caddy 运行至关重要,删除前需了解潜在风险。
本镜像提供两个卷挂载点:/data(数据目录)和 /config(配置目录)。下文示例中均使用命名卷 caddy_data 挂载 /data,以确保数据持久化。命名卷可跨容器重启/终止保留数据,升级镜像时可复用。
默认配置文件会从 /usr/share/caddy 提供文件服务。若需从当前目录提供 index.html:
$ echo "hello world" > index.html $ docker run -d -p 80:80 \ -v $PWD/index.html:/usr/share/caddy/index.html \ -v caddy_data:/data \ caddy ... $ curl [***] world
若需自定义 Caddyfile,可在当前目录创建 conf 子目录并放入 Caddyfile,然后将 conf 目录挂载到 /etc/caddy:
$ docker run -d -p 80:80 \ -v $PWD/conf:/etc/caddy \ -v caddy_data:/data \ caddy
/etc/caddy/Caddyfile使用 vim 等会修改文件 inode 的编辑器时,容器内文件仅在容器重建后才会更新(详见 Medium 文章)。这可能导致 Caddy 优雅重载功能异常(参考 issue)。
默认 Caddyfile 仅监听 80 端口,不启用自动 TLS。若拥有域名且 DNS A/AAAA 记录已指向服务器公网 IP,可通过以下命令启用 HTTPS:
$ docker run -d --cap-add=NET_ADMIN -p 80:80 -p 443:443 -p 443:443/udp \ -v /site:/srv \ -v caddy_data:/data \ -v caddy_config:/config \ caddy caddy file-server --domain example.com
关键:Caddy 需监听 80 和 443 端口(ACME HTTP 挑战必需)。更多自动 HTTPS 信息见 Caddy 文档。
生产环境通常不建议挂载文件,而是基于 caddy 镜像构建自定义镜像:
# 注意:生产环境不要使用 :latest 标签 FROM caddy:<version> COPY Caddyfile /etc/caddy/Caddyfile COPY site /srv
Caddy 支持通过模块扩展功能(模块列表见 Caddy 下载页)。可使用 :builder 镜像快速构建含自定义模块的 Caddy 二进制文件:
FROM caddy:<version>-builder AS builder RUN xcaddy build \ --with github.com/caddyserver/nginx-adapter \ --with github.com/hairyhenderson/caddy-teapot-module@v0.0.3-0 FROM caddy:<version> COPY --from=builder /usr/bin/caddy /usr/bin/caddy
上述示例通过第二个 FROM 指令将构建好的二进制文件覆盖到基础镜像,大幅减小最终镜像体积。xcaddy 工具用于构建含指定模块的 Caddy(支持指定模块版本,格式为 模块名@版本),标准模块(github.com/caddyserver/caddy/master/modules/standard)默认包含。
Caddy 支持零停机重载配置,通过 caddy reload 命令实现。Docker 环境下,推荐在运行中容器内执行该命令:
$ caddy_container_id=$(docker ps | grep caddy | awk '{print $1;}')
/etc/caddy 以自动找到 Caddyfile):
$ docker exec -w /etc/caddy $caddy_container_id caddy reload
Caddy 默认启用 HTTP/3 支持。为提升 UDP 协议性能,底层 quic-go 库需调整 socket 缓冲区大小,NET_ADMIN 权限可允许其覆盖系统默认限制(无需修改内核参数)。该权限为可选,潜在安全影响参考 Unix Stack Exchange。更多信息见 quic-go 文档。
若使用 docker compose,可创建 compose.yaml 文件,假设自定义 Caddyfile 位于 $PWD/conf:
services: caddy: image: caddy:<version> restart: unless-stopped cap_add: - NET_ADMIN # 可选,用于 HTTP/3 性能优化 ports: - "80:80" - "443:443" - "443:443/udp" # HTTP/3 需开放 UDP 443 volumes: - $PWD/conf:/etc/caddy # 挂载自定义配置 - $PWD/site:/srv # 网站文件 - caddy_data:/data # 持久化数据 - caddy_config:/config # 配置目录(可选持久化) volumes: caddy_data: caddy_config:
通过以下命令重载配置:
$ docker compose exec -w /etc/caddy caddy caddy reload
caddy:<version>默认镜像,适合大多数场景,可直接运行或作为基础镜像构建自定义镜像。
caddy:<version>-alpine基于 Alpine Linux(alpine 官方镜像),体积极小(~5MB),适合对镜像大小敏感的场景。注意:使用 musl libc 而非 glibc,部分依赖 glibc 的软件可能存在兼容性问题(参考 对比)。
caddy:<version>-windowsservercore基于 Windows Server Core,仅支持 Windows 10 专业版/企业版(周年更新及以上)或 Windows Server 2016 及以上环境。
本镜像包含软件的许可证信息见 Caddy 许可证。
Docker 镜像可能包含其他软件(如基础系统的 Bash 等),其许可证需用户自行确认合规
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429