
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
以无root权限和无发行版方式运行Caddy。
Caddy是一款用Go语言编写的Web服务器,以其简洁性和自动HTTPS功能而闻名。它作为强大且灵活的反向代理,支持HTTP、HTTPS、WebSocket、gRPC和FastCGI等多种协议。
此镜像能用来做什么? 该镜像以https://github.com/11notes/RTFM/blob/main/linux/container/image/rootless.md和https://github.com/11notes/RTFM/blob/main/linux/container/image/distroless.md方式运行Caddy,以实现最高安全性。默认使用JSON格式配置。若需使用Caddyfile格式,可参考https://github.com/11notes/docker-caddy/blob/master/compose.yml中的命令,并确保Caddyfile至少包含以下存储和健康检查配置:
{ storage file_system /caddy/var } 127.0.0.1:3000 { respond / 200 }
为何选择此镜像而非其他现有镜像? 原因如下:
若您重视安全性、简洁性和极致优化,此镜像可能适合您。
以下是本镜像与其他常用或官方镜像的对比:
| 镜像 | 磁盘大小 | 默认用户 | https://github.com/11notes/RTFM/blob/main/linux/container/image/distroless.md | 支持架构 |
|---|---|---|---|---|
| 11notes/caddy | 34MB | 1000:1000 | ✅ | amd64, arm64, armv7 |
| caddy | 62MB | 0:0 | ❌ | amd64, amd64, amd64, arm64v8, armv6, armv7, ppc64le, riscv64, s390x |
json{ "apps": { "http": { "servers": { "health": { "listen": ["127.0.0.1:3000"], "routes": [ { "handle": [{ "handler": "static_response", "status_code": 200 }] } ] }, "demo": { "listen": [":80"], "routes": [ { "handle": [{ "handler": "static_response", "body": "11notes/caddy" }] } ] } } } }, "storage":{ "module": "file_system", "root": "/caddy/var" } }
yamlname: "proxy" x-lockdown: &lockdown # 防止对镜像本身的写访问 read_only: true # 防止容器内进程获取更多权限 security_opt: - "no-new-privileges=true" services: caddy: image: "docker.xuanyuan.run/11notes/caddy:2.11.3" # 使用Caddyfile而非json # command: ["run", "--config", "/caddy/etc/Caddyfile"] <<: *lockdown environment: TZ: "Europe/Zurich" ports: - "80:80/tcp" - "443:443/tcp" volumes: - "caddy.etc:/caddy/etc" - "caddy.var:/caddy/var" # 可选卷(可用tmpfs替代)用于存储配置备份 - "caddy.backup:/caddy/backup" networks: frontend: sysctls: # 允许无root容器访问80及以上端口 net.ipv4.ip_unprivileged_port_start: 80 restart: "always" volumes: caddy.etc: caddy.var: caddy.backup: networks: frontend:
如需修改容器默认UID/GID,请参考https://github.com/11notes/RTFM/blob/main/linux/container/image/11notes/how-to.changeUIDGID.md#change-uidgid-the-correct-way。
| 参数 | 值 | 描述 |
|---|---|---|
user | docker | 用户名 |
uid | 1000 | 用户标识符 |
gid | 1000 | 组标识符 |
home | /caddy | docker用户的主目录 |
| 参数 | 说明 | 默认值 |
|---|---|---|
TZ | 时区 | |
DEBUG | 激活容器镜像和应用的调试选项(如支持) | |
XDG_CONFIG_HOME | 配置备份存储目录 | /caddy/backup |
以下是镜像的主要标签,同时也提供每个提交及其sha256短哈希值对应的标签。
个人认为:latest标签是不良习惯,不应使用。许多开发者在新版本中引入破坏性变更,这会影响使用:latest的用户。若不想手动更新标签至最新https://semver.org/,可使用语义化版本的短格式。例如,使用`:2`或`:2.11`而非`:2.11.3`,这些标签会随新版本更新,效果类似`:latest`但固定在主版本或次版本,理论上不会引入破坏性变更。
若坚持使用最新版本,可使用:rolling标签,但请注意!这会直接获取应用的最新版本,无论是否存在破坏性变更或安全问题,风险自负!
docker pull docker.xuanyuan.run/11notes/caddy:2.11.3 docker pull ***-ghcr.xuanyuan.run/11notes/caddy:2.11.3 docker pull ***-quay.xuanyuan.run/11notes/caddy:2.11.3
本镜像默认支持Unraid,只需在任何标签后添加**-unraid**,镜像将以99:100而非1000:1000运行。
本镜像默认支持nobody用户,只需在任何标签后添加**-nobody**,镜像将以65534:65534而非1000:1000运行。
本镜像不基于其他镜像,而是以https://hub.docker.com/_/scratch为基础层。包含以下无发行版层:
127.0.0.1:3000监听指令并返回HTTP 200状态码以支持默认健康检查,或创建自定义健康检查!本镜像按"现状"提供,使用风险自负。更新镜像版本前请务必备份。查看https://github.com/11notes/docker-caddy/releases了解破坏性变更。使用中遇到问题请提交https://github.com/11notes/docker-caddy/issues。如有疑问或建议,请创建https://github.com/11notes/docker-caddy/discussions而非issue。所有其他仓库可在https://github.com/11notes?tab=repositories查看。
创建于 13.05.2026, 09:51:39 (CET)
某些OTA或其他服务仅通过HTTP(未加密)工作,因为其有限内存无法容纳所有根CA。 ↩
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务