Der Docker cp-Befehl ist ein praktisches Dienstprogramm, mit dem Dateien und Ordner zwischen einem Container und dem Hostsystem kopiert werden können.
Wenn Sie Dateien von Ihrem Hostsystem in den Container kopieren möchten, sollten Sie den docker cp-Befehl wie folgt verwenden:
docker cp host_source_path container:destination_path
Wenn Sie Dateien aus dem Container auf das Hostsystem kopieren möchten, verwenden Sie diesen Befehl:
docker cp container:source_path host_destination_path
Das mag ein wenig einschüchternd wirken, also lass es mich dir anhand einiger praktischer Beispiele erklären.
Beispiele für Docker-cp-Befehle
In meinem Tutorial habe ich Docker auf Ubuntu installiert. Die Schritte sind jedoch für alle Distributionen, auf denen Docker ausgeführt wird, gleich.
Ich hoffe, Sie wissen, wie man einen Docker-Container ausführt, weil Sie einen laufenden Container benötigen.
Listen Sie Ihre laufenden Container zuerst mit docker ps auf Befehl:
[email protected]:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8353c6f43fba 775349758637 "bash" 8 seconds ago Up 7 seconds ubu_container
Sie müssen entweder die Container-ID oder den Containernamen kennen. In meinem Fall lautet der Name des Docker-Containers ubu_container . und die Container-ID ist 8353c6f43fba .
Wenn Sie überprüfen möchten, ob die Dateien erfolgreich kopiert wurden, können Sie Ihren Container folgendermaßen eingeben und dann normale Linux-Befehle verwenden:
docker exec -it ubu_container bash
1. Dateien vom Hostsystem in den Docker-Container kopieren
Das Kopieren mit docker cp ähnelt dem Kopierbefehl unter Linux.
Ich werde eine Datei namens a.py in das Verzeichnis home/dir1 im Container kopieren.
docker cp a.py ubu_container:/home/dir1
Wenn die Datei erfolgreich kopiert wurde, sehen Sie keine Ausgabe auf dem Bildschirm. Wenn der Zielpfad nicht existiert, wird ein Fehler angezeigt:
[email protected]:~$ sudo docker cp a.txt ubu_container:/home/dir2/subsub
Error: No such container:path: ubu_container:/home/dir2
Wenn die Zieldatei bereits existiert, wird sie ohne Warnung überschrieben.
Sie können anstelle des Containernamens auch die Container-ID verwenden:
docker cp a.py 8353c6f43fba:/home/dir1
Docker Run vs. Start vs. Create:Unterschied erklärtFür einen Docker-Anfänger könnten Begriffe wie Docker-Start, Docker-Run und Docker-Erstellung verwirrend sein. Dieser Artikel erklärt den Unterschied anhand von Beispielen. Linux-HandbuchAbhishek Prakash 2. Kopieren Sie Dateien aus dem Docker-Container in das Hostsystem
Der Befehl docker cp wird nur im Hostsystem ausgeführt. Sie können es nicht im Container ausführen.
Auch wenn Sie Dateien aus dem Docker-Container auf das Hostsystem kopieren möchten, müssen Sie sich im Hostsystem befinden und den Befehl folgendermaßen verwenden:
sudo docker cp ubu_container:/home/dir1/new.txt /home/abhishek
3. Verzeichnisse zwischen Container und Hostsystem kopieren
Wenn Sie das Verzeichnis unter Linux mit dem cp-Befehl kopieren möchten, müssen Sie die rekursive Option -r.
verwendenAber im Befehl docker cp benötigen Sie keine solchen Optionen. Derselbe Befehl funktioniert zum Kopieren von Dateien und Ordnern.
docker cp /home/abhishek/my_dir ubu_container:/home
sudo docker cp ubu_container:/home/my_dir /home/abhishek
4. Dateien und Verzeichnisse mit Originalattributen kopieren
Sie können den Archivmodus beim Kopieren mit der Option -a verwenden. Damit können Sie alle Dateiberechtigungen, UID und GID der Originaldatei kopieren.
docker cp -a host_source_path container:destination_path
docker cp -a container:source_path host_destination_path
Das ist alles. Sie sehen, wie einfach es ist, Dateien zwischen Host und Container mit dem Befehl docker cp zu kopieren.
Wenn Sie Fragen oder Anregungen haben, lassen Sie es mich im Kommentarsystem wissen.