📚 Docker pour les débutants : Le Chantier Naval

8.3 : Les Labels Docker : « Taguer » ses conteneurs pour qu’ils apparaissent sur le web

📄 Article ⏱ 5 ✅ Gratuit

raefik détecte automatiquement vos conteneurs via les labels Docker. Ces labels permettent de :

  • Indiquer à Traefik qu’un conteneur doit être exposé sur le web.
  • Définir des règles de routage (nom de domaine, entrypoint, etc.)

Pour cette étape, nous reprenons le stack Apache / PHP-FPM / MariaDB que nous avons déjà déployé.

Le réseau externe

Dans notre configuration, Traefik est déployé dans une stack séparée. Pour que vos conteneurs d’application soient visibles par Traefik :

  1. On crée un réseau Docker externe proxy-traefik (déjà fait à la section précédente).
  2. Chaque stack d’application doit joindre ce réseau externe.

Exemple pour notre stack PHP/Apache :

networks:
  proxy-traefik:
    external: true
Cela permet à Traefik de communiquer avec les conteneurs sans que leurs ports internes soient exposés directement à Internet.

Exemple de labels pour un conteneur web

Dans le service Apache ou PHP-FPM :

services:
web:
image: php:8.2-apache
container_name: monsite-web
restart: unless-stopped
networks:
- proxy-traefik
labels:
- "traefik.enable=true" # On active Traefik sur ce conteneur
- "traefik.http.routers.monsite.rule=Host(`monsite.local`)" # Domaine à router
- "traefik.http.routers.monsite.entrypoints=web" # Entrypoint défini dans Traefik

Ici, Traefik détecte automatiquement le conteneur et sait qu’il doit router le trafic vers monsite.local.
Les labels sont des métadonnées simples qui servent à “taguer” le conteneur pour Traefik.

Schéma simplifié des flux

        Internet
           |
        Traefik (stack séparé)
           |
           |-- proxy-traefik (réseau externe)
           |
  -------------------------------
  |        |                  |
 Apache   PHP-FPM            MariaDB
 (web)    (backend)          (bdd)
  • Les conteneurs web et backend sont connectés au réseau externe proxy-traefik.
  • Traefik peut ainsi router le trafic vers le bon conteneur grâce aux labels.
  • Les conteneurs n’exposent pas leurs ports directement sur Internet, ce qui sécurise le stack.

💡 Astuce :

  • Les labels ne modifient pas le conteneur, ils servent uniquement à informer Traefik.
  • Vous pouvez ajouter autant de labels que nécessaire pour définir des règles plus complexes (HTTPS, redirections, middlewares, etc.)