GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

So kopieren Sie Dateien zwischen Host und Docker-Container

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.

verwenden

Aber 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.


Docker
  1. So installieren und hosten Sie einen OpenVPN-Server mit Docker

  2. So installieren Sie Docker und stellen einen LAMP-Stack bereit

  3. Wie und warum man einen Remote-Docker-Host verwendet

  4. So greifen Sie vom Host auf den Netzwerk-Namespace des Docker-Containers zu

  5. So sichern und wiederherstellen Sie Docker-Container

Wie man SSH in einen Docker-Container einfügt und Befehle ausführt

So stellen Sie eine Verbindung zu Localhost in einem Docker-Container her

So verwenden Sie Docker Cp zum Kopieren von Dateien zwischen Host und Containern

So stellen Sie einen Docker-MongoDB-Container bereit und verwalten ihn

So kopieren Sie Dateien mit Docker cp in Ihren Docker-Container

So greifen Sie auf Dateien außerhalb eines Docker-Containers zu