Infra, Ops & WorkflowAttention8787/100
yunt-docker-volumes-networks
Volumes et réseaux Docker (Yunt Academy) : volumes nommés, bind mounts, tmpfs, drivers réseau bridge/host/none, DNS entre conteneurs, publish de ports et debug connectivité. À utiliser pour persister des données ou connecter des conteneurs entre eux.
ou envoie-le directement à ton agent.
Installer dans ton projet
$ npx arboris-cli@latest install yunt-docker-volumes-networksYunt
academy.yunt.fr
Contenu à copier
--- name: yunt-docker-volumes-networks description: > Volumes et réseaux Docker (Yunt Academy) : volumes nommés, bind mounts, tmpfs, drivers réseau bridge/host/none, DNS entre conteneurs, publish de ports et debug connectivité. À utiliser pour persister des données ou connecter des conteneurs entre eux. metadata: origin: Yunt course: Conteneuriser ses projets web avec Docker source: https://academy.yunt.fr/dashboard/catalogue --- # Yunt — Volumes & réseaux Compétences du cours Yunt Academy (persistance + mise en réseau), condensées pour un agent. ## When to Activate - Données perdues après `docker rm` - Partager un dossier hôte ↔ conteneur (bind mount) - Faire communiquer deux conteneurs (DB + app) - Diagnostiquer « connection refused » / DNS entre services ## When not to use - Fichier Compose multi-services → `yunt-docker-compose` (réutilise ces concepts) - Build d’image → `yunt-docker-images-build` ## Persistance | Mécanisme | Usage | Survit à `rm` du conteneur | | --- | --- | --- | | Couche conteneur | Éphémère | Non | | **Volume nommé** | Données gérées par Docker (DB, uploads) | Oui | | **Bind mount** | Code source, config locale | Oui (sur l’hôte) | | **tmpfs** | Secrets / cache en RAM | Non | ```bash # Volume nommé docker volume create pgdata docker run -d --name db \ -e POSTGRES_PASSWORD=secret \ -v pgdata:/var/lib/postgresql/data \ postgres:16-alpine # Bind mount (dev) docker run --rm -v "$PWD":/app -w /app node:22-alpine node index.js docker volume ls docker volume inspect pgdata ``` **Règles** : ne pas bind-mounter les data dirs DB en prod sans maîtrise des permissions ; préférer un volume nommé. Ne jamais committer un bind de `.env` contenant des secrets dans une image. ## Réseaux - **bridge** (défaut) : réseau privé entre conteneurs ; ports publiés via `-p`. - **host** : partage la pile réseau de l’hôte (Linux). - **none** : pas de réseau. - Sur un **réseau user-defined**, les conteneurs se joignent par **nom** (DNS Docker). ```bash docker network create appnet docker run -d --name db --network appnet \ -e POSTGRES_PASSWORD=secret postgres:16-alpine docker run -d --name api --network appnet \ -e DATABASE_URL=postgres://postgres:secret@db:5432/postgres \ -p 3000:3000 mon-api:dev docker network ls docker network inspect appnet ``` ### Publish de ports `-p 8080:80` mappe le port **hôte** 8080 vers le port **conteneur** 80. Sans `-p`, le service reste joignable seulement depuis le même réseau Docker. ## Debug réseau / données 1. `docker inspect` → `Mounts`, `Networks`, `IPAddress`. 2. Depuis un conteneur du même réseau : `ping db`, `nc -zv db 5432` (si outils présents). 3. Vérifier le nom DNS (nom du conteneur / alias) et non `localhost` (localhost = le conteneur lui-même). 4. Volume vide vs mauvais chemin de montage : comparer `Destination` dans `inspect`. ## Attribution Contenu pédagogique condensé avec autorisation du créateur — Yunt Academy.
Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.
Ce que fait yunt-docker-volumes-networks
Données perdues après `docker rm`
Partager un dossier hôte ↔ conteneur (bind mount)
Faire communiquer deux conteneurs (DB + app)
Diagnostiquer « connection refused » / DNS entre services
Comment utiliser yunt-docker-volumes-networks
1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.
Déclencheurs pour yunt-docker-volumes-networks
Dis simplement à ton agent quelque chose comme :
Applique le skill yunt-docker-volumes-networks à cette tâche
Utilise yunt-docker-volumes-networks pour améliorer cette implémentation
Passe en revue ce sujet avec yunt-docker-volumes-networks
Skills liés à yunt-docker-volumes-networks
add cli command dotnet dotnet
Add or change a dotnet CLI command, subcommand, or option across the relevant CLI projects. USE FOR: adding or changing a dotnet CLI command/subcommand, adding a new Option<T> or Argument<T>, registering a subcommand in the command tree, changing an option's help description or a command's runtime message, wiring a command parser, or updating --help output.add cli command dotnet sdk
Add or change a dotnet CLI command, subcommand, or option across the relevant CLI projects. USE FOR: adding or changing a dotnet CLI command/subcommand, adding a new Option<T> or Argument<T>, registering a subcommand in the command tree, changing an option's help description or a command's runtime message, wiring a command parser, or updating --help output.add dotnet aot command dotnet dotnet
Add, enable, or review a dotnet CLI command or feature in the Native AOT CLI (src/Cli/dotnet-aot) and prove its compatibility. USE FOR: migrating a command or option to AOT, reviewing an AOT migration PR, defining conservative eligibility and managed fallback, changing AotSourceFiles.props or AotDependencies.props, validating AOT/managed parity, NativeAOT-publishing tests, checking binary-size impact, or using the dn harness and separated SDK layout. DO NOT USE FOR: resolving IL trim/AOT analyzer warnings alone (use dotnet-aot-compat), running dotnet.Tests incrementally (use incremental-test), or pure managed CLI work.