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

从Docker & Docker Compose迁移至containerd与nerdctl后,Traefik反向代理无法访问Apache站点的问题求助

从Docker & Docker Compose迁移至containerd与nerdctl后,Traefik反向代理无法访问Apache站点的问题求助

大家好,我之前用Docker和Docker Compose自动部署容器的配置一直运行正常:一个容器跑Apache,另一个用Traefik做反向代理,访问example.com能正常看到Apache的默认页面,对应的docker-compose配置如下:

version: "3"

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command:
      - "--api.insecure=true"
      - "--log.level=DEBUG"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web-secure.address=:443"
    ports:
      - "80:80"
      - "443:443"

  apache:
    image: httpd:latest
    container_name: apache
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.apache.rule=Host(`example.com`)"
      - "traefik.http.routers.apache.entrypoints=web"
      - "traefik.http.services.apache.loadbalancer.server.port=80"

现在我想迁移到containerd环境,用nerdctl来部署(它支持读取yaml文件,用法和docker-compose类似),但迁移后却无法正常访问站点。我修改后的配置如下:

version: "3"

services:
  traefik:
    image: traefik:v3.0
    container_name: traefik
    volumes:
      - /var/run/containerd/containerd.sock:/var/run/containerd/containerd.sock
    command:
      - "--api.insecure=true"
      - "--log.level=DEBUG"
      - "--providers.docker=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web-secure.address=:443"
      - "--providers.containerd.endpoint=unix:///var/run/containerd/containerd.sock"
    ports:
      - "80:80"
      - "443:443"

  apache:
    image: httpd:latest
    container_name: apache
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.apache.rule=Host(`example.com`)"
      - "traefik.http.routers.apache.entrypoints=web"
      - "traefik.http.services.apache.loadbalancer.server.port=80"

目前我排查到的情况:

  • 所有容器都正常启动,没有启动失败的情况
  • Traefik和Apache的日志里都没有报错信息
  • 容器之间可以互相ping通,说明网络连通正常,而且它们处于同一个子网
  • 但访问example.com时,页面始终提示“无法访问此页面”

我还尝试过调整Traefik的配置:把卷挂载改成/run/containerd/containerd.sock:/run/containerd/containerd.sock,同时在命令里加上--providers.containerd=true,但问题依然存在。

想问下各位大佬,我是不是漏掉了什么关键配置?有没有相关的经验或者排查方向可以指导一下?

备注:内容来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:18:10