【问题标题】:traefik docker basic exemple return 404traefik docker基本示例返回404
【发布时间】:2020-09-27 16:58:19
【问题描述】:

我开始使用 treafix,但我面对一堵墙。我正在尝试从此处提供的基本 docker 示例开始:https://doc.traefik.io/traefik/user-guides/docker-compose/basic-example/

version: "3.8"

services:

  traefik:
    image: "traefik:v2.3"
    container_name: "traefik"
    command:
      - "--log.level=DEBUG"
      - "--accessLog"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  whoami:
    image: "traefik/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.entrypoints=web"
      - "traefik.http.routers.whoami.rule=Host('server.local')"

由于我是本地人,我已在我的主机文件中设置“server.local”以指向 127.0.0.1

但是,当我使用 compose 运行它并尝试访问我的 server.local 时,我只得到了 404,而不是 whoami 预期的响应。我在日志中没有看到任何让我觉得有问题的地方,但我再次从 traefik 区域开始。

我在带有 WSL2 的 windows 上使用 docker 桌面并在 ubuntu WSL2 vm 中运行 compose

【问题讨论】:

    标签: docker traefik


    【解决方案1】:

    我发现了我的问题:

    在 traefik 规则中,你应该只使用 backtick (`) 和 not 单引号 (') 来定义字符串字面量

    所以我的:

    - "traefik.http.routers.whoami.rule=Host('server.local')"
    

    应该是

    - "traefik.http.routers.whoami.rule=Host(`server.local`)"
    

    我希望 traefik 文档能更清楚地说明这一点,尤其是在默认示例中...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2019-04-23
      • 2019-01-01
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多