
caddy-docker-proxy 是 Caddy 2 的一款扩展模块,能让你通过 Docker 容器的标签(labels)自动配置反向代理,无需手动编写和维护 Caddyfile。它会监听 Docker 事件(如容器启动、停止),实时生成或更新 Caddy 配置,帮你快速搭建基于 Caddy 的反向代理服务。
/api 转发到特定服务),满足复杂的代理需求。headers、rate_limit、rewrite 等),直接通过标签配置。首先需要安装 Caddy 并启用 caddy-docker-proxy 模块。推荐用官方提供的集成镜像(已预装模块),或手动编译:
方式 1:使用官方集成镜像(推荐)
直接拉取包含模块的 Caddy 镜像:
bashdocker pull lucaslorentz/caddy-docker-proxy:ci-alpine
方式 2:手动编译(适合自定义 Caddy 模块)
通过 xcaddy 编译带模块的 Caddy:
bashxcaddy build --with github.com/lucaslorentz/caddy-docker-proxy/v2
启动 Caddy 容器
启动时需挂载 Docker Socket(让 Caddy 监听 Docker 事件),并映射 80/443 端口:
bashdocker run -d \ --name caddy \ -p 80:80 \ -p 443:443 \ -v /var/run/docker.sock:/var/run/docker.sock \ # 挂载 Docker Socket -v caddy_data:/data \ # 存储证书、配置等数据 lucaslorentz/caddy-docker-proxy:ci-alpine
给需要代理的应用容器添加 caddy.* 格式的标签,定义代理规则。
示例:代理一个简单的 Web 服务
假设你有个运行在 8080 端口的 Node.js 服务(容器名 my-app),想通过 app.example.com 访问:
启动应用容器时添加标签:
bashdocker run -d \ --name my-app \ -l caddy.host=app.example.com \ # 绑定域名 -l caddy.reverse_proxy=[***] \ # 反向代理到容器内服务 my-node-app:latest # 你的应用镜像
标签说明
caddy.host: 绑定的域名(支持多个,用逗号分隔,如 caddy.host=app1.example.com,app2.example.com)。caddy.reverse_proxy: 定义代理目标,格式同 Caddyfile(如 caddy.reverse_proxy=/api [***] 表示路径 /api转发到api-service:3000`)。caddy.指令名=参数,如 caddy.header.Strict-Transport-Security=max-age=31536000; includeSubDomains(添加 HSTS 头)。容器启动后,caddy-docker-proxy 会自动生成配置。访问 `[***] Caddy 所在服务器),即可看到应用服务的响应。
/var/run/docker.sock 会让 Caddy 有权限操作 Docker 资源,生产环境建议通过用户组或第三方工具(如 docker-socket-proxy)限制权限。caddy.reverse_proxy.0=/api、`caddy.reverse_proxy.1=[***]docker logs caddy。通过以上步骤,你可以快速用 Docker 标签管理 Caddy 反向代理,尤其适合多容器、动态部署的场景。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务