web-dev-qa-db-fra.com

Comment copier des fichiers d'une machine locale vers un conteneur de menu fixe sous Windows

Je dois importer des fichiers de données d'un fichier local d'utilisateur C:/users/saad/bdd dans un conteneur de menu fixe (cassandra), je n'ai pas trouvé comment utiliser les commandes de menu fixe .

Merci beaucoup pour votre aide 

11
Manou

Utilisez docker cp.

docker cp c:\path\to\local\file container_name:/path/to/target/dir/

Si vous ne savez pas quel est le nom du conteneur, vous pouvez le trouver en utilisant:

docker ps --format "{{.Names}}"
25
Alvaro Carvajal

Ce n'est pas aussi simple lorsque vous utilisez Docker Toolbox. Étant donné que docker toolbox n’a accès qu’au dossier C:\Users\ et qu’il existe un gestionnaire Oracle Virtual Box Manager, lorsque vous copiez le dossier, il n’est pas copié directement dans le conteneur, mais plutôt dans un handle de volume monté par Oracle VM machine. Ainsi:

/mnt/sda1/var/lib/docker/volumes/19b65e5d9f607607441818d3923e5133c9a96cc91206be1239059400fa317611/_data

La façon dont je me suis débrouillé c'est simplement en train de modifier mon DockerFile :

FROM cassandra:latest

ADD cassandra.yml /etc/cassandra/
ADD import.csv /var/lib/cassandra/
EXPOSE 9042

Et le construire.

2
mel3kings

Si vous utilisez docker-toolbox sous Windows, utilisez la syntaxe suivante

docker cp/c/utilisateurs/saad/bdd-restaurants cassandra:/var/lib/docker/containers 

2
Aparna

Lors de l'utilisation de Docker Toolbox, il semble exister un autre problème lié aux chemins absolus.

Je communique avec les conteneurs à l'aide du "Docker Quickstart Teminal", qui est essentiellement un environnement MINGW64.

Si j'essaie de copier un fichier avec un chemin absolu vers un conteneur, je reçois le message d'erreur.

$ docker cp /d/Temp/my-super-file.txt container-name:/tmp/
copying between containers is not supported

Si j'utilise un chemin relatif, cela fonctionne simplement.

$ cd /d/
$ docker cp Temp/my-super-file.txt container-name:/tmp/

P.S .: Je poste ceci comme une réponse à cause de la réputation manquante pour un commentaire.

1
DwightKendall

Voici la réponse type

 belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker ps
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                              NAMES
94ef16fa1d18        tensorflow/tensorflow   "/run_jupyter.sh --a…"   2 days ago          Up 2 days           6006/tcp, 0.0.0.0:8888->8888/tcp   adoring_engelbart
belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker ps --format "{{.Names}}"
adoring_engelbart
belzebub-system:~/Documents/dead-exorcist/satan_ml$ docker cp  ~/Documents/dead-exorcist/satan_ml/satan_ml.tar.gz   adoring_engelbart:/notebooks
belzebub-system:~/Documents/dead-exorcist/satan_ml$
0
TheExorcist

Utilisez cette commande pour copier des fichiers de la machine hôte dans le conteneur de menu fixe.

docker cp c:\abc.doc <containerid> :C:\inetpub\wwwroot\abc.doc
0
Pramod Lawate