Aller au contenu

Docker Networks — Explication simple

Les réseaux Docker = des salles de réunion

Chaque container est une personne. Un réseau Docker, c'est une salle de réunion. Deux personnes ne peuvent se parler que si elles sont dans la même salle.


Situation avant (tout dans une seule salle)

┌─────────────────────────────────────┐
│        psychoenligne_default        │
│                                     │
│  frontend  backend  postgres  redis │
└─────────────────────────────────────┘

Tout le monde dans la même salle → tout le monde se parle. Ça marche, mais postgres et redis sont "propriété" de PsychoEnLigne. Un deuxième projet ne peut pas les utiliser.


Situation après (infrastructure partagée)

On a créé une deuxième salle : shared_infra. Postgres et redis y ont déménagé.

┌──────────────────┐     ┌──────────────────────────────┐
│   shared_infra   │     │     psychoenligne_default     │
│                  │     │                              │
│ postgres  redis  │     │   frontend      backend      │
└──────────────────┘     └──────────────────────────────┘

Problème : frontend et backend se parlent. Mais backend doit aussi parler à postgres et redis. Ils ne sont plus dans la même salle.

Solution : le backend a un badge d'accès aux deux salles.

┌──────────────────┐     ┌──────────────────────────────┐
│   shared_infra   │     │     psychoenligne_default     │
│                  │     │                              │
│ postgres  redis  │     │   frontend                   │
│          ↕       │     │              ↕               │
│        backend ──┼─────┼──────────── backend          │
└──────────────────┘     └──────────────────────────────┘
         (même container, présent dans les deux salles)

Pour les prochains projets

Chaque nouveau projet crée sa propre salle (monprojet_default) pour frontend ↔ backend. Son backend prend aussi un badge pour shared_infra — il accède à postgres et redis sans créer de nouveaux containers.

┌──────────────────┐   ┌────────────────────┐   ┌────────────────────┐
│   shared_infra   │   │ psychoenligne_def  │   │ monprojet_default  │
│                  │   │                    │   │                    │
│ postgres  redis  │   │ frontend  backend  │   │ frontend  backend  │
└────────┬─────────┘   └────────┬───────────┘   └────────┬───────────┘
         └────────────────────→─┘←─────────────────────→─┘
               (les deux backends ont accès à shared_infra)

Note sur psycho-net

psycho-net était une tentative manuelle de créer cette deuxième salle, mais personne n'avait de badge — elle existait sans être utilisée. Remplacée par shared_infra correctement configurée.


Liens connexes