Il n'est pas possible de monter directement un sous répertoire présent sur un volume nommé cependant on peut obtenir un résultat équivalent en utilisant les liens symboliques.
Pour l'exemple on souhaite partager un volume nommé entre plusieurs services sauvegarder les données produites par une base de données MySQL dans un volume nommé partager
# In the Dockerfile:
RUN mkdir -p /data/subdir
RUN ln -s /data/subdir /var/www/subdir
Pour exporter un volume et le transférer vers un autre hôte ici via ssh:
docker run --rm -v datavol:/data:ro busybox:latest tar -C /data -cf- . | ssh server.fqdn docker run --rm -i -v datavol:/data busybox:latest tar -C /data -xf-
Pour créer une archive sur le système de fichier local
docker container run --rm --interactive --tty --volume $(pwd)/backup:/mnt/backup --volume datavol:/mnt/datavol:ro busybox:latest /bin/tar -cvzf /mnt/backup/backup_volume.tar /mnt/datavol
source : https://stackoverflow.com/questions/68229758/export-docker-volume-to-another-machine
Pour avoir une vue globale de l'espace disque utilisé par Docker, il existe la commande docker system df:
docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 21 5 7.217GB 6.723GB (93%) Containers 5 5 191.2kB 0B (0%) Local Volumes 10 3 784.1MB 634.1MB (80%) Build Cache 0 0 0B 0B
Dans l'exemple ci-dessus on peut rapidement évaluer la partie occupée par les volumes grâce au résumé exprimé en pourcentage.
Utiliser l'option -v ou --verbose pour obtenir une réponse plus exhaustive avec le détail par volume:
docker system df -v
Images space usage: . . . Local Volumes space usage: VOLUME NAME LINKS SIZE redmine_redmine_db 1 53.39MB ffsync_data 0 61.44kB mqtt_mosquitto_data 1 3.481kB mqtt_mosquitto_log 1 0B prometheus_data 1 220.8MB
Pour déterminer quel répertoire est utilisé localement pour sauvegarder les données di volume, utiliser la commande docker volume inspect:
docker volume inspect dokuwiki_phobos_databank [ { "CreatedAt": "2021-02-03T00:26:42+01:00", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/dokuwiki_phobos_databank/_data", "Name": "dokuwiki_phobos_databank", "Options": {}, "Scope": "local" } ]
La valeur de Mountpoint
permet d'identifier le répertoire associé au volume. Un outil tel que ncdu permettra alors rapidement d'évaluer quelle partie de l'arborescence consomme de l'espace disque:
# Analyse interactive en console via ncdu ncdu /var/lib/docker/volumes/dokuwiki_phobos_databank/_data