Installer Traefik avec Docker Swarm

Mis à jour le dimanche 26 décembre 2021 par johackim

Pour installer Traefik avec Docker Swarm, on créer une stack Docker traefik.yml :

# traefik.yml
version: '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=:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- {target: 80, published: 80, mode: host, protocol: tcp}
networks:
default:
external: true
name: 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.