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