Docker: „Error: No such container:path:“

docker cp

Wenn Dateien von einem Host in einen Docker-Container kopiert werden sollten (oder umgekehrt: Container -> Host), nutz man dazu den Befehl:

docker cp [Quellpfad/Quelldatei] [Container:Zielpfad/Zieldatei]

Wenn das allerdings einmal nicht funktioniert und mit einer ähnlich lautenden Fehlermeldung quittiert wird:

docker cp /home/administrator/myFile1.php myContainer1:/resources/views/files/myFile1.php
Error: No such container:path: myContainer1:/resources/views/files

Kann das mit einer gesetzten „WORKDIR“-Umgebungsvariable zusammenhängen.
In diesem Fall wurde in der Dockerfile folgendes definiert:

WORKDIR /var/www/html

Somit muss der korrekte Kopier-Befehl folgendermaßen lauten:

docker cp /home/administrator/myFile1.php myContainer1:/var/www/html/resources/views/files/myFile1.php

 


 

docker exec

Das wird aber oftmals vergessen, wenn ansonsten mit „docker exec“ gearbeitet wird.
Hier wird die WORKDIR-Umgebungsvariable nämlich automatisch berücksichtigt. Es reicht beispielsweise folgender Befehl:

docker exec -it myContainer1 sh
cd /resources/views/files

Anstatt den ganzen Pfad ausschreiben zu müssen:

docker exec -it myContainer1 sh
cd /var/www/html/resources/views/files

Verifiziert kann der aktuelle Standort in der Verzeichnisstruktur mit dem pwd-Befehl werden:

docker exec -it myContainer1 sh
pwd
/var/www/html

Die Ausagbe „/var/www/html“ korresponidert dabei mit der WORKDIR-Umgebungsvariable in der Dockerfile.

 

Dieses Verhalten zeigt sich mindestens bis zur Docker-Version 19.03.13 (aktuelle Version als der Artikel geschrieben wurde).

1 thought on “Docker: „Error: No such container:path:“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert