如果你使用 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://hub.docker.com/_/caddy 的 s390x 架构专用仓库——更多信息,请参见官方镜像文档中的「https://github.com/docker-library/official-images#architectures-other-than-amd64%E3%80%8D%E4%BB%A5%E5%8F%8A%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F FAQ 中的「https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E3%80%8D%E3%80%82
维护者:
https://github.com/caddyserver/caddy-docker
获取帮助:
Caddy 社区论坛
Dockerfile 链接(参见 FAQ 中的「https://github.com/docker-library/faq#whats-the-difference-between-shared-and-simple-tags%E3%80%8D%EF%BC%89
https://github.com/caddyserver/caddy-docker/blob/5572371a83e48fd0368a4917d0fc48e44ef30582/2.10/alpine/Dockerfile
https://github.com/caddyserver/caddy-docker/blob/5572371a83e48fd0368a4917d0fc48e44ef30582/2.10/builder/Dockerfile
2.10.2, 2.10, 2, latest:
2.10.2-builder, 2.10-builder, 2-builder, builder:
提交问题:
https://github.com/caddyserver/caddy-docker/issues?q=
支持的架构:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/caddy/%E3%80%81https://hub.docker.com/r/arm32v6/caddy/%E3%80%81https://hub.docker.com/r/arm32v7/caddy/%E3%80%81https://hub.docker.com/r/arm64v8/caddy/%E3%80%81https://hub.docker.com/r/ppc64le/caddy/%E3%80%81https://hub.docker.com/r/riscv64/caddy/%E3%80%81https://hub.docker.com/r/s390x/caddy/%E3%80%81https://hub.docker.com/r/winamd64/caddy/
镜像制品详情:
https://github.com/docker-library/repo-info/blob/master/repos/caddy%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/caddy%EF%BC%89
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fcaddy
https://github.com/docker-library/official-images/blob/master/library/caddy%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/caddy%EF%BC%89
本描述的来源:
https://github.com/docker-library/docs/tree/master/caddy%EF%BC%88https://github.com/docker-library/docs/commits/master/caddy%EF%BC%89
!https://raw.githubusercontent.com/docker-library/docs/7f3881a28c29ed29bb1a38681b95bd785a8a6da5/caddy/logo.png
Caddy 2 是一款功能强大、企业级的开源Web服务器,用Go语言编写,具备自动HTTPS功能。
⚠️ 关于持久化数据的注意事项
Caddy 需要对两个位置具有写入权限:数据目录 和 配置目录。虽然不必持久化配置目录中的文件(但可能方便),但持久化数据目录非常重要。
文档中说明:
数据目录不得视为缓存。其内容并非临时文件或仅为性能而存在。Caddy 将TLS证书、私钥、OCSP staples 及其他必要信息存储在数据目录中。未经了解相关影响,不应删除其内容。
本镜像提供两个卷挂载点:/data 和 /config。
以下示例中,命名卷 caddy_data 挂载到 /data,以实现数据持久化。
注意:命名卷会在容器重启和终止后保留,因此升级镜像版本时,可重用相同的数据和配置目录。
默认配置文件从 /usr/share/caddy 提供文件服务,若要从当前工作目录提供 index.html:
console$ echo "hello world" > index.html $ docker run -d -p 80:80 \ -v $PWD/index.html:/usr/share/caddy/index.html \ -v caddy_data:/data \ s390x/caddy ... $ curl http://localhost/ hello world
若要覆盖默认 https://github.com/caddyserver/dist/blob/master/config/Caddyfile%EF%BC%8C%E5%8F%AF%E5%9C%A8%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E7%9A%84 conf 子文件夹中创建 Caddyfile,并将该文件夹挂载到 /etc/caddy:
console$ docker run -d -p 80:80 \ -v $PWD/conf:/etc/caddy \ -v caddy_data:/data \ s390x/caddy
⚠️ 不要直接将 Caddyfile 挂载到 /etc/caddy/Caddyfile
如果使用 vim 或其他会更改文件 inode 的编辑器,修改后的内容仅在容器重建时才会应用到容器内,详情见此 Medium 文章。使用此类编辑器时,Caddy 的优雅重载功能可能无法正常工作,如 https://github.com/caddyserver/caddy/issues/5735#issuecomment-*** 所述。
默认 Caddyfile 仅监听 80 端口,不启用自动 TLS。但若您的网站有域名,且其 A/AAAA DNS 记录已正确指向该机器的公网 IP,可通过以下命令简单地通过 HTTPS 提供服务:
console$ 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 \ s390x/caddy caddy file-server --domain example.com
关键在于 Caddy 需能够监听 80 和 443 端口(ACME HTTP 挑战必需)。
更多自动 HTTPS 支持信息见 Caddy 文档!
大多数生产环境用户不会依赖挂载文件到容器,而是基于 s390x/caddy 构建自己的镜像:
Dockerfile# 注意:生产环境不要使用 :latest 标签 FROM s390x/caddy:<version> COPY Caddyfile /etc/caddy/Caddyfile COPY site /srv
添加自定义 Caddy 模块
Caddy 可通过「模块」扩展功能。详见 [***] Caddy 官网下载页。
可使用 :builder 镜像快速构建包含自定义模块的 Caddy 二进制文件:
DockerfileFROM s390x/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 s390x/caddy:<version> COPY --from=builder /usr/bin/caddy /usr/bin/caddy
注意第二个 FROM 指令:通过将新构建的二进制文件覆盖到常规 s390x/caddy 镜像上,可生成更小的最终镜像。
xcaddy 工具用于 https://github.com/caddyserver/caddy/blob/4217217badf220d7d2c25f43f955fdc8454f2c64/cmd/caddy/main.go#L15..L25%EF%BC%8C%E6%94%AF%E6%8C%81%E6%8C%87%E5%AE%9A%E6%A8%A1%E5%9D%97%E5%90%8D%E6%88%96%E5%B8%A6%E7%89%88%E6%9C%AC%E7%9A%84%E6%A8%A1%E5%9D%97%EF%BC%88%E7%94%A8 @ 分隔),也可指定 Caddy 版本(版本标签或提交哈希)。更多 https://github.com/caddyserver/xcaddy#command-usage%E3%80%82
注意:标准 Caddy 模块(https://github.com/caddyserver/caddy/tree/master/modules/standard%EF%BC%89%E5%A7%8B%E7%BB%88%E5%8C%85%E5%90%AB%E5%9C%A8%E5%86%85%E3%80%82
更改配置时无需完全重启 Caddy。Caddy 提供 caddy reload 命令,可零停机重载配置。
Docker 环境中,推荐通过在运行的容器内执行 caddy reload 触发配置重载。
首先获取容器 ID 或名称,然后通过 docker exec 执行命令。工作目录设为 /etc/caddy,以便 Caddy 无需额外参数即可找到 Caddyfile:
console$ caddy_container_id=$(docker ps | grep caddy | awk '{print $1;}') $ docker exec -w /etc/caddy $caddy_container_id caddy reload
Caddy 默认启用 HTTP/3 支持。为提升 UDP 协议性能,底层 quic-go 库会尝试增加其 socket 缓冲区大小。NET_ADMIN 权限允许其覆盖操作系统的低默认限制,无需通过 sysctl 修改内核参数。
授予容器此权限是可选的,可能存在(尽管可能性低)安全影响。
更多详情见 https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes%E3%80%82
若偏好使用 docker compose 运行服务,以下是 compose.yaml 文件示例配置(假设已按 上文 所述在 $PWD/conf 中创建自定义 Caddyfile):
yamlservices: caddy: image: s390x/caddy:<version> restart: unless-stopped cap_add: - NET_ADMIN ports: - "80:80" - "443:443" - "443:443/udp" 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 执行。
s390x/caddy 镜像有多种版本,适用于不同场景。
s390x/caddy:<version>这是默认镜像。若不确定需求,建议使用此版本。既可作为临时容器(挂载源代码启动),也可作为基础镜像构建其他镜像。
s390x/caddy:<version>-alpine此镜像基于流行的 Alpine Linux 项目(https://hub.docker.com/_/alpine%EF%BC%89%E3%80%82Alpine Linux 比大多数发行版基础镜像小得多(约 5MB),因此生成的镜像更精简。
当首要目标是最小化最终镜像大小时,此变体非常有用。需注意其使用 musl libc 而非 glibc 等,软件可能因 libc 依赖/假设深度而遇到问题。更多讨论见 此 Hacker News 评论 thread。
为最小化镜像大小,Alpine 镜像通常不包含额外工具(如 git 或 bash)。可在自己的 Dockerfile 中添加所需工具(参见 https://hub.docker.com/_/alpine/ 中的安装示例)。
查看本镜像包含软件的 https://github.com/caddyserver/caddy/blob/master/LICENSE%E3%80%82
与所有 Docker 镜像一样,本镜像可能包含其他软件,可能受其他许可证约束(如基础发行版中的 Bash 等,以及主软件的任何直接或间接依赖)。
自动检测到的其他许可证信息可能位于 https://github.com/docker-library/repo-info/tree/master/repos/caddy%E3%80%82
对于任何预构建镜像的使用,镜像用户有责任确保其使用符合包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务