Ceci est une ancienne révision du document !
L'objectif des volumes est de pouvoir utiliser des données persistantes dans les conteneurs (sauf pour le tmpfs).
Il faut distinguer 3 types de volume sous Docker :
Lister les volumes :
docker volume ls
Créer un volume nommé MyVolume
:
docker volume create MyVolume
Ci-dessous pour démarrer un conteneur en utilisant le volume MyVolume
qui sera monté dans le dossier /mnt/vol_docker
du conteneur :
docker run -d --name MyContainer -v MyVolume:/mnt/vol_docker ubuntu
ou
docker run -d --name MyContainer --mount type=bind,source=MyVolume,destination=/mnt/vol_docker ubuntu
Pour identifier où sont stockées les données de MyVolume
sur la machine hôte :
docker volume inspect MyVolume
Exemple de résultat attendu :
[ { "CreatedAt": "2023-11-17T11:06:32Z", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/MyVolume/_data", "Name": "MyVolume", "Options": null, "Scope": "local" } ]
Les données des volumes sont stockées dans le répertoire
/var/lib/docker/volumes/
de la machine hôte. Les données de MyVolume
sont stockées dans le répertoire /var/lib/docker/volumes/MyVolume/_data
.
Pour identifier les conteneurs qui utilisent le volume MyVolume
:
docker ps -a --filter volume=MyVolume
Exemple de résultat attendu :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b3f7ec23a377 httpd "httpd-foreground" 29 minutes ago Up 29 minutes 80/tcp MyContainer
Pour supprimer le volume MyVolume
:
docker volume rm MyVolume
Remarque : Les conteneurs créés en utilisant le volume, doivent être arrêté et supprimé avant :
docker stop MyContainer docker rm MyContainer docker volume rm MyVolume