2016-06-20 7 views
4

Ich bin neu zu Docker-Konzept und versuche, eine Datei von meinem Host in den Container zu kopieren. Unter der Annahme, dass mein Name Docker my_docker ist, wenn ich folgendes ausgeführt:Docker cp vom Host zum Container funktioniert nicht

docker cp my_docker:/usr/local/src/test.txt test.txt 

Es kopiert die Datei test.txt von meinem Container an den lokalen Host. Aber umgekehrt funktioniert es nicht. Hier ist der Befehl:

docker cp test.txt my_docker:/usr/local/src 

Gibt es etwas, das ich mache? Jede Hilfe würde sehr geschätzt werden.

Dank

+0

Versuchst du 'my_docker Docker cp test.txt zu verwenden:/usr/local/src/test.txt'? –

+0

Ja. Funktioniert immer noch nicht. Es funktionierte letzte Woche gut, funktionierte aber nicht mehr. –

+0

Erhalten Sie eine Fehlermeldung? Wenn ja, kannst du es hier posten. Ich habe es mit dem letzten Docker versucht, der Befehl scheint zu funktionieren. – techtabu

Antwort

0

In Ihrem zweiten Befehl erscheinen Sie kopieren test.txt in/usr/local mit dem Namen src zu versuchen. Versuchen Sie, ein/an das Ende des Zielpfads zu setzen: docker cp test.txt my_docker:/usr/local/src/ mit dem Dateinamen kopieren oder: docker cp test.txt my_docker:/usr/local/src/newname.txt, um es im Container umzubenennen.

0

Als ahajib in den Kommentaren erwähnt, suchen Sie nach der Datei, die Sie in einem anderen Container kopiert haben.

$ docker run --name my_container alpine 
$ docker cp test.txt my_container:/tmp/test.txt 
$ docker run alpine ls -l /tmp 
total 0 
$ docker ps -a 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS       PORTS    NAMES 
6224c947fbbd  alpine    "ls -l /tmp"  11 seconds ago  Exited (0) 10 seconds ago       brave_neumann 
22951689a3e4  alpine    "/bin/sh"   About a minute ago Exited (0) About a minute ago      my_container 

Sie kopiert die Datei in my_container, aber Sie lief den ls -l /tmp Befehl in brave_neumann.

Wenn Sie Dateien in einen Container kopieren und diese Dateien dann im Container verwenden möchten, müssen Sie die Dateien entweder kopieren, während der Container noch läuft, oder Sie kopieren sie auf ein Andockvolume. . dass Volumen in einem neuen Behälter Montage lässt es dann die Dateien, die Sie in kopiert sehen

$ docker volume create my_volume 
my_volume 
$ docker run --name my_container2 -v my_volume:/data alpine echo OK 
OK 
$ docker cp test.txt my_container2:/data/test.txt 
$ docker run -v my_volume:/data alpine ls -l /data 
total 4 
-rw-r--r-- 1 1006  1006   29 Oct 6 19:43 test.txt 
$ docker ps -a 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS      PORTS    NAMES 
15b36ccd535f  alpine    "ls -l /data"  7 seconds ago  Exited (0) 6 seconds ago      agitated_khorana 
b9d4c9e0902f  alpine    "echo OK"   54 seconds ago  Exited (0) 53 seconds ago      my_container2 
6224c947fbbd  alpine    "ls -l /tmp"  2 minutes ago  Exited (0) 2 minutes ago      brave_neumann 
22951689a3e4  alpine    "/bin/sh"   3 minutes ago  Exited (0) 3 minutes ago      my_container 
$