web-dev-qa-db-fra.com

Copier le dossier avec caractère générique du conteneur Docker vers l'hôte

Création d'un script de sauvegarde pour vider mongodb à l'intérieur d'un conteneur, j'ai besoin de copier le dossier à l'extérieur du conteneur, Docker cp ne semble pas fonctionner avec des caractères génériques:

docker cp mongodb:mongo_dump_* .

Ce qui suit est jeté dans le terminal:

Réponse d'erreur du démon: lstat/var/lib/docker/aufs/mnt/SomeHash/mongo_dump_ *: aucun fichier ou répertoire de ce type

Existe-t-il une solution de contournement pour utiliser des caractères génériques avec la commande cp?

14

Vous pouvez créer les fichiers de vidage mongo dans un dossier à l'intérieur du conteneur, puis copier le dossier: il s'agit d'une solution de contournement.

Il semble qu'il n'y ait pas encore de moyen d'utiliser des caractères génériques avec la commande docker cp https://github.com/docker/docker/issues/771 .

Je pense que la meilleure façon de gérer ce que vous voulez faire est d'utiliser des volumes Docker, afin que vous puissiez directement enregistrer les fichiers du conteneur dans votre dossier Host sans utiliser aucune autre commande: https: //docs.docker. com/engine/userguide/containers/dockervolumes /

10
Jonathan Muller

J'ai eu un problème similaire et j'ai dû le résoudre en deux étapes:

$ docker exec <id> bash -c "mkdir /extract; mv /path/to/fileset* /extract"
$ docker cp <id>:/extract .
11
user9334670