Comparer les modèles de stockage
| Question | Volume nommé | Bind mount |
|---|---|---|
| Qui choisit l’emplacement ? | Docker le gère. | Vous indiquez un chemin de l’hôte. |
| Usage courant | Données applicatives persistantes. | Code source ou configuration de l’hôte. |
| Sur un nouvel hôte ? | Créer ou restaurer le volume. | Préparer le chemin et ses fichiers. |
Les deux peuvent survivre à la suppression d’un conteneur. Aucun n’est une sauvegarde automatique. Avec un daemon distant, la source du bind mount se trouve sur l’hôte du daemon, pas nécessairement sur votre ordinateur.
Observer la persistance d’un volume
Choisissez un nom de volume neuf. La première exécution peut télécharger l’image Alpine utilisée par cet exemple.
docker volume create devsheet-volume-demo
docker run --rm --mount type=volume,source=devsheet-volume-demo,target=/data alpine:3.22 sh -c "echo hello > /data/note.txt"
docker run --rm --mount type=volume,source=devsheet-volume-demo,target=/data alpine:3.22 cat /data/note.txtRésultat attendu : hello à la deuxième exécution. --rm a supprimé le premier conteneur, mais le volume explicitement nommé conserve le fichier. Ce volume reste présent jusqu’à sa suppression volontaire.
Monter un dossier en lecture seule
Dans Bash, créez un nouveau dossier de démonstration. La source doit exister avec cette syntaxe de montage.
mkdir devsheet-bind-demo
printf "hello\n" > devsheet-bind-demo/note.txt
docker run --rm --mount "type=bind,source=$(pwd)/devsheet-bind-demo,target=/data,readonly" alpine:3.22 cat /data/note.txtRésultat attendu : hello provenant du fichier de l’hôte. readonly empêche les écritures depuis ce montage. Docker Desktop peut demander l’autorisation de partager ce dossier. Le dossier de l’hôte reste présent.
Vérifier les montages et les sauvegardes
Monter sur un dossier non vide du conteneur masque son contenu existant pendant le montage. Vérifiez le chemin dans la section Mounts de docker inspect <container>.
Un bind mount inscriptible permet au conteneur de modifier les fichiers de l’hôte concernés. Limitez le dossier exposé. Pour une base de données, utilisez une sauvegarde adaptée ; copier des fichiers actifs sans vérifier leur cohérence ne suffit pas.