当端口 8080 未打开时,Traefik 仪表板不显示

Traefik dashboad is not showing when port 8080 is not open

我正在学习 traefik,我尝试在不打开端口 8080 的情况下设置仪表板。

通过以下配置,我可以访问仪表板。

docker-compose.yml

version: '3'

services:
  reverse-proxy:
    image: traefik:1.7.9-alpine
    restart: unless-stopped
    networks:
      - mynet
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/traefik/traefik.toml:/traefik.toml
networks:
  mynet:
    external: true

traefik.toml

[entryPoints]
    [entryPoints.http]
    address = ":80"

[api]

[docker]

一旦我从 docker-compose.yml 中删除端口 8080,我就无法再访问它了。

要使这个非常简单的设置正常工作,缺少哪些部分?

后台的url默认是{你的ip}:8080

我认为您可能在这里搞混了:您修改的入口点是 "http",而不是 "api"。因此,使用此配置,您仍然需要通过 8080 访问仪表板。

如果您想改变这一事实,请为 api 添加一个入口点(例如 "foo"),并在匹配的配置中设置 entryPoints.foo。

[entryPoints]
  [entryPoints.http]
  address = ":8090"

  [entryPoints.foo]
  address = ":80"

[api]
entryPoint = "foo"

但是如您所见,您丢失了 "http" 默认端口...这很烦人。所以,我想你可以保留 8080 或换成一个不太容易猜到的。

这主要来自this part of the doc

感谢 Marvin 的帮助,我做到了:

docker-compose.yml

version: '3'

services:
  reverse-proxy:
    image: traefik:1.7.9-alpine
    restart: unless-stopped
    networks:
      - mynet
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /opt/traefik/traefik.toml:/traefik.toml
networks:
  mynet:
    external: true

traefik.toml

[entryPoints]
 [entryPoints.http]
  address = ":80"

[api]
dashboard = true

[file]
  [backends]
    [backends.traefik]
      [backends.traefik.servers.server]
      url = "http://127.0.0.1:8080"

  [frontends]
    [frontends.traefik]
    entryPoints = ["http"]
    backend = "traefik"
      [frontends.traefik.routes.traefik]
      rule = "PathPrefixStrip:/traefik;PathPrefix:/traefik"

[docker]

转到您的域。tld/traefik 显示仪表板!