Pour installer Traefik avec Docker Swarm, on créer une stack Docker traefik.yml
:
# traefik.ymlversion: '3.8'services:traefik:image: traefik:${VERSION:-2.4.8}command:- --providers.docker- --providers.docker.network=traefik-net- --providers.docker.exposedByDefault=false- --providers.docker.swarmMode=true- --providers.docker.endpoint=unix:///var/run/docker.sock- --entrypoints.http.address=:80volumes:- /var/run/docker.sock:/var/run/docker.sock:roports:- {target: 80, published: 80, mode: host, protocol: tcp}networks:default:external: truename: traefik-net
On créer un réseau docker :
docker network create --driver=overlay traefik-net
On déploie traefik :
docker stack deploy -c traefik.yml traefik
Il est à présent possible de déployer une application (ex: Ghost) avec un nom de domaine associé (ex: ghost.localhost) :
docker service create --network traefik-net \-l traefik.enable=true \-l traefik.http.routers.my-container.rule='Host(`ghost.localhost`)' \-l traefik.http.services.my-service.loadbalancer.server.port=2368 ghost
Vous pouvez accédez à votre application en vous rendant sur http://ghost.localhost.