Comme décrit dans la documentation Docker sur l'utilisation des volumes, il existe le concept de conteneurs dits uniquement de données , qui fournissent un volume qui peut être monté dans plusieurs autres conteneurs, que le conteneur de données uniquement soit en cours d'exécution ou non.
En gros, cela semble génial. Mais il y a une chose que je ne comprends pas.
Ces volumes (qui ne sont pas explicitement mappés à un dossier sur l'hôte pour des raisons de portabilité, comme l'indique la documentation) sont créés et gérés par Docker dans un dossier interne sur l'hôte ( /var/docker/volumes/…
).
Supposons que j'utilise un tel volume, puis que je doive le migrer d'un hôte à un autre - comment porter le volume? AFAICS, il a un ID unique - puis-je simplement copier le volume et son conteneur de données uniquement sur un nouvel hôte? Comment savoir quels fichiers copier? Ou existe-t-il un support intégré à Docker que je n'ai pas encore découvert?
docker run --volumes-from <data container> ubuntu tar -cO <volume path> | gzip -c > volume.tgz
cela ne dépend pas des détails d'implémentation des volumes. Et importez les données avec tar sur la deuxième machine.