2418 votes

Copier les fichiers d’hôte au conteneur de docker

Je suis en train de construire une sauvegarde et une restauration de la solution pour les conteneurs docker qui nous travailler avec.

J'ai docker image de base que j'ai créé, ubuntu:base et ne veulent pas avoir à reconstruire à chaque fois avec un dockerfile pour ajouter des fichiers.

Je veux créer un script qui s'exécute à partir de la machine hôte et crée un nouveau conteneur à l'aide de l' ubuntu:base docker image et copie les fichiers dans le conteneur. Mais je suis coincé copier des fichiers sur le conteneur

Comment puis-je copier des fichiers de l'hôte vers le conteneur?

220voto

user2357585 Points 359
  1. Obtenir le nom du conteneur ou court numéro du conteneur :

    docker ps

  2. Obtenir plein d'id de conteneur

    docker inspecter -f '{{.Id}}' SHORT_CONTAINER_ID-ou-CONTAINER_NAME

  3. copier le fichier :

    sudo cp chemin-fichier-accueil /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/CHEMIN-de-NOUVEAUX-FICHIER

EXEMPLE :

$docker ps

CONTENANT L'ID DE L'IMAGE COMMANDE A CRÉÉ LE STATUT DES PORTS NOMS

d8e703d7e303 solidleon/ssh:latest /usr/sbin/sshd -D cranky_pare

$menu fixe inspecter -f '{{.Id}}' cranky_pare

ou

$menu fixe inspecter -f '{{.Id}}' d8e703d7e303

d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5

$sudo cp file.txt /var/lib/docker/aufs/mnt/d8e703d7e3039a6df6d01bd7fb58d1882e592a85059eb16c4b83cf91847f88e5/root/file.txt

173voto

Ben Davis Points 1299

Le moyen le plus propre est de monter un répertoire hôte sur le conteneur avant d’exécuter votre commande.

130voto

Erik Points 121

Voici une façon assez moche de le faire mais il fonctionne.

42voto

pierce Points 37

Ma solution est tout simplement

coquille de docker :

partir de l’hôte :

Autrement dit, je copier le fichier directement à où le conteneur est assis sur le système de fichiers.

10voto

johndodo Points 2975

Moyen facile et rapide : (en supposant que le conteneur est déjà en cours d’exécution)

Cela dit, le partage de fichiers dans un répertoire partagé est beaucoup plus facile, mais vous devez exécuter votre récipient de manière appropriée :

Remarque : vous pouvez rencontrer des problèmes avec les permissions comme conteneur utilisateurs ne sont pas les mêmes que les utilisateurs de l’hôte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X