traefik docker基本示例返回404

时间:2020-09-26 10:45:01

标签: docker traefik

我开始使用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区域开始。

我在WSL和WSL2上的Windows上使用docker桌面,并在ubuntu WSL2 vm内运行compose

1 个答案:

答案 0 :(得分:0)

我发现了问题:

在traefik规则中,您仅应使用反引号(`)和用单引号(')定义乱抛垃圾的字符串

所以我的:

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

应该是

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

我希望traefik文档能使这一点更加清晰,尤其是在默认示例中……