feat: docs
CI / 🔍 Lint & Type Check (push) Successful in 2m11s
CI / 🐳 Build & Push Image (push) Successful in 1m16s

This commit is contained in:
2026-07-17 16:15:54 +02:00
parent 0c2f42b4a3
commit 1542a991b9
38 changed files with 6366 additions and 19 deletions
+71
View File
@@ -0,0 +1,71 @@
---
title: Réseaux Docker
description: Relier les services avec un réseau privé et la résolution DNS interne.
---
## Des conteneurs isolés
Chaque conteneur possède sa propre pile réseau. Pour que le backend puisse joindre PostgreSQL et que Nginx puisse joindre le frontend, leurs conteneurs doivent partager un réseau.
## Réseau bridge et noms de services
Compose crée un réseau et y attache les services. Sur ce réseau, Docker fournit un DNS interne : chaque service est joignable avec son nom.
```yaml
networks:
app-network:
driver: bridge
services:
postgres:
networks:
- app-network
backend:
networks:
- app-network
environment:
POSTGRES_HOST: postgres
MINIO_HOST: minio
SMTP_HOST: mailpit
```
Le backend se connecte à la base avec l'hôte `postgres`. Docker résout ce nom vers l'adresse interne du conteneur correspondant.
Les adresses IP peuvent changer à chaque redémarrage ; les noms de services restent stables.
<Callout title="localhost reste local" type="warning">
À l'intérieur d'un conteneur, localhost désigne ce même conteneur. Pour joindre un autre service, utilise son nom Compose, jamais localhost.
</Callout>
## Isolation entre les stacks
Deux projets Compose distincts créent chacun leur réseau bridge. Leurs services ne se voient pas par défaut.
Cette isolation permet notamment de lancer plusieurs stacks de tests en parallèle sans qu'elles communiquent entre elles.
## Segmenter l'application
Un service peut appartenir à plusieurs réseaux. On peut ainsi exposer Nginx au réseau frontal tout en gardant PostgreSQL uniquement sur un réseau interne :
```yaml
networks:
public:
private:
services:
nginx:
networks:
- public
- private
backend:
networks:
- private
postgres:
networks:
- private
```
Seuls les services partageant un réseau peuvent communiquer directement.