You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境中作为反向代理的Caddy无法连接其他容器问题排查

问题根因

你混淆了容器内部监听端口和宿主机映射端口:

  • Portainer容器通过entrypoint: /portainer -p :80配置,内部实际监听的是80端口
  • 你配置的ports: "1000:80"仅作用于宿主机到容器的端口映射,容器之间在同一Docker网络通信时,直接使用容器内部端口即可,不需要走宿主机映射的1000端口

你Caddyfile里写的reverse_proxy portainer:1000是访问Portainer容器的1000端口,但该端口在容器内部根本没有服务监听,自然会返回连接拒绝的502错误。

修复步骤
  1. 修改你的Caddyfile配置,将反向代理端口改为Portainer容器内部监听的80端口:
smallhetzi.fading-flame.com {
    reverse_proxy portainer:80
}
  1. 进入Caddy的docker compose目录,执行以下命令重启Caddy容器生效:
    docker compose up -d --force-recreate caddy
额外优化建议

你的Portainer compose配置中volumes字段存在冗余错误,建议修改:
原错误配置:

volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - portainer_data:/data portainer/portainer

修改为:

volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - portainer_data:/data

删除末尾多余的portainer/portainer,避免容器启动出现未知异常。

验证方法

如果修改后仍然异常,可执行以下命令排查网络连通性:

  • 执行docker inspect caddy和docker inspect portainer,确认两个容器的Networks字段中都存在caddy外部网络
  • 进入Caddy容器内部执行curl portainer:80,如果能正常返回Portainer的页面内容,说明容器间通信正常,反向代理配置已经生效。

内容的提问来源于stack exchange,提问作者modmoto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:54:03