I created a simple working example (no swarm, no let's encrypt, no file):
version: "3"
services:
traefik:
image: traefik:v2.0.0
ports:
- "80:80"
- "443:443"
command:
- --global.checkNewVersion=true
- --global.sendAnonymousUsage=true
- --entryPoints.web.address=:80
- --entryPoints.websecure.address=:443
- --log.level=DEBUG
- --api
- --ping
# - --certificatesResolvers.letsencrypt.acme.email="email@example.tld"
# - --certificatesResolvers.letsencrypt.acmestorage="acme.json"
# - --certificatesResolvers.letsencrypt.acme.dnsChallenge.provider="netcup"
- --providers.docker.exposedByDefault=false
# - --providers.docker.watch=true
# - --providers.docker.swarmMode=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik_https.rule=Host(`dashboard.docker.localhost`)"
- "traefik.http.routers.traefik_https.entrypoints=websecure"
- "traefik.http.routers.traefik_https.tls=true"
# - "traefik.http.routers.traefik_https.tls.certResolver=letsencrypt"
- "traefik.http.routers.traefik_https.service=api@internal"
- "traefik.http.routers.traefik_https.middlewares=traefik-auth"
# - "traefik.http.services.noop.loadbalancer.server.port=888" # required only for swarm
- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$iNdRs1II$$Qdw59WFY6y0Oaf0JaZTip0"
- "traefik.http.routers.http_traefik.rule=Host(`dashboard.docker.localhost`)"
- "traefik.http.routers.http_traefik.entrypoints=web"
- "traefik.http.routers.http_traefik.middlewares=https_redirect"
- "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
whoami:
image: containous/whoami:v1.3.0
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami_http.rule=Host(`whoami.docker.localhost`)"
- "traefik.http.routers.whoami_http.entrypoints=web"
- "traefik.http.routers.whoami_http.middlewares=redirect-https-whoami"
- "traefik.http.middlewares.redirect-https-whoami.redirectscheme.scheme=https"
- "traefik.http.routers.whoami_https.rule=Host(`whoami.docker.localhost`)"
- "traefik.http.routers.whoami_https.entrypoints=websecure"
- "traefik.http.routers.whoami_https.tls=true"
# - "traefik.http.routers.whoami_https.tls.certResolver=letsencrypt"
- "traefik.http.services.whoami.loadbalancer.server.port=80"
-
dashboard.docker.localhost
serve the Traefik dashboard with auto-signed certificates -
whoami.docker.localhost
serve the whoami with auto-signed certificates
tried to inspire you with that.