Installer Traefik avec Docker Swarm

Mis à jour le

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.


©2017-2021