Docker Traefik v2:HTTPS返回“未找到404页”`

Docker Traefik v2:HTTPS返回“未找到404页”`,docker,docker-compose,yaml,traefik,Docker,Docker Compose,Yaml,Traefik,我遵循并使用了基本的traefik.toml: traefik.toml [entryPoints] [entryPoints.web] address = ":80" [entryPoints.websecure] address = ":443" [api] dashboard = true insecure = true [providers.docker] version: "3.7" services: traefik: image

我遵循并使用了基本的
traefik.toml

traefik.toml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
docker compose.yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
HTTP端点的调用:

$curl-H主机:whoami.docker.localhosthttp://127.0.0.1
主机名:aa6bfee60f2d
IP:127.0.0.1
IP:172.29.0.4
HTTPS端点的调用:

curl——不安全的-H主机:whoami.docker.localhosthttps://127.0.0.1
404找不到页面
我的问题:它返回404未找到页面,而不是HTTP端点所做的whoami内容

如何在Traefik v2中正确启用HTTPS


完整(非工作)MWE可在此处找到:

以下是一个工作示例:

后端服务正在HTTP模式下运行。这意味着此配置不是完整的HTTPS

端口8082用于度量。如果您没有指标,可以将其删除。从
traefik.yml
static.yml
中删除配置

通过服务端口更改端口
traefik.http.services.my service.loadbalancer.server.port=8484

traefil.yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
static.yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
dynamic.yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
我的服务。yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"

以下是一个工作示例:

后端服务正在HTTP模式下运行。这意味着此配置不是完整的HTTPS

端口8082用于度量。如果您没有指标,可以将其删除。从
traefik.yml
static.yml
中删除配置

通过服务端口更改端口
traefik.http.services.my service.loadbalancer.server.port=8484

traefil.yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
static.yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
dynamic.yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"
我的服务。yml

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

  [entryPoints.websecure]
    address = ":443"

[api]
  dashboard = true
  insecure = true

[providers.docker]
version: "3.7"

services:
  traefik:
    image: traefik
    ports: 
    - "8080:8080"
    - "80:80"
    - "443:443"
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - "$PWD/traefik.toml:/etc/traefik/traefik.toml"

  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
version: "3.7"
services:
  traefik:
    image: traefik:v2.4.6
    command: --providers.docker
    restart: always 
    container_name: traefik
    networks:
      - web
      - internal
    ports:
      - 80:80
      - 443:443
      - 28080:8080
      - 8082:8082
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/static.yml:/etc/traefik/traefik.yml:ro
      - ./traefik/dynamic.yml:/etc/traefik/dynamic/dynamic.yaml
      - ./certs/localhost.crt:/etc/traefik/certs/traefik.crt:ro
      - ./certs/localhost.key:/etc/traefik/certs/traefik.key:ro
log:
  level: DEBUG
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: web-secure
  web-secure:
    address: ":443"
  metrics:
    address: ":8082"

providers:
  docker:
    watch: true
    exposedbydefault: false
  file:
    directory: /etc/traefik/dynamic
    watch: true
    filename: dynamic.yml
    
api:
  dashboard: true
  insecure: true

metrics:
  prometheus: 
      buckets:
        - 0.1
        - 0.3
        - 1.2
        - 5.0
      addEntryPointsLabels: true
      addServicesLabels: true
      entryPoint: metrics
tls:
  certificates:
    - certFile: "/etc/traefik/certs/traefik.crt"
      keyFile: "/etc/traefik/certs/traefik.key"
      stores:
        - default
  stores:
    default:
      defaultCertificate:
        certFile: "/etc/traefik/certs/traefik.crt"
        keyFile: "/etc/traefik/certs/traefik.key"
version: "3.7"
services:
  my-service:
    image: my-service
    networks:
      - internal
    volumes:
      - ./certs/cacerts:/opt/java/openjdk/jre/lib/security/cacerts:ro      
      - ./certs/keystore.p12:/opt/java/openjdk/jre/lib/security/keystore.p12:ro      
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.my-service.rule=Host(`my-service.localhost`)"
      - "traefik.http.routers.my-service.entrypoints=web,web-secure"
      - "traefik.http.routers.my-service.tls=true"
      - "traefik.http.routers.my-service.service=my-service"
      - "traefik.http.middlewares.my-service.redirectscheme.scheme=https"
      - "traefik.http.middlewares.my-service.redirectscheme.permanent=true"
      - "traefik.http.services.my-service.loadbalancer.server.port=8284"

可能尝试添加以下标签:
traefik.http.services.whoami.loadBalancer.server.port=80
?出于某种奇怪的原因对我有效。也许可以尝试添加以下标签:
traefik.http.services.whoami.loadBalancer.server.port=80
?因为某种奇怪的原因为我工作。