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
?因为某种奇怪的原因为我工作。