Softwaretests | Detaillierte Erklärung des Docker-cp-Befehls: Dateien/Ordner zwischen Docker-Containern und Hosts kopieren

Fügen Sie hier eine Bildbeschreibung ein

Einführung

Docker ist eine beliebte Containerisierungsplattform, die es Entwicklern ermöglicht, Anwendungen in einer eigenständigen, portablen Umgebung zu erstellen, zu verpacken und bereitzustellen. Bei der Verwendung von Docker ist es häufig erforderlich, Dateien zwischen dem Docker-Container und dem Host zu kopieren und zu teilen. Docker bietet einen docker cpBefehl zum einfachen Kopieren von Dateien und Verzeichnissen zwischen dem Container und dem Host. docker cpIn diesem Artikel werden die Verwendung von Befehlen und allgemeine Beispiele ausführlich vorgestellt .

Docker-CP-Befehl

docker cpDer Befehl ist ein von Docker bereitgestellter Befehl zum Kopieren von Dateien und Verzeichnissen zwischen dem Host und dem Container. Seine Syntax ist wie folgt:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
  • CONTAINER, kann ein laufender oder gestoppter Container sein, entweder Name oder ID
  • SRC_PATH, der Pfad der Quelldatei oder des Quellverzeichnisses im Container
  • DEST_PATH, der Speicherort des Zielpfads auf dem Host

Hinweis: docker cpDer Befehl geht davon aus, dass der Containerpfad relativ zum Verzeichnis / (Stammverzeichnis) des Containers und der Hostpfad relativ zum aktuellen Verzeichnis ist, in dem der Docker-Befehl cp ausgeführt wird.

OptionenVerfügbare Parameter

  • -a: Behalten Sie die kopierten Dateien oder Verzeichnisse mit ihren ursprünglichen Attributen bei, einschließlich Besitzer, Berechtigungen usw.
  • -L: Wenn SRC_PATH ein symbolischer Link ist, wird die Datei oder das Verzeichnis kopiert, auf die der Link verweist.
  • -p: Behält den Zeitstempel der Quelldatei oder des Quellverzeichnisses bei.
  • -ROder -r: Kopieren Sie das gesamte Verzeichnis rekursiv.

SRC_PATH & DEST_PATH

SRC_PATHund DEST_PATHsind docker cpdie Schlüsselbestandteile des Befehls. Ob der Pfad korrekt ist, hängt davon ab, ob der Befehl erfolgreich ausgeführt werden kann. Lassen Sie uns die verschiedenen Situationen dieser beiden Pfade analysieren und erklären, ob sie unter verschiedenen Umständen erfolgreich kopiert werden können.

SRC_PATH beim Angeben einer Datei
  1. wann DEST_PATHexistiert nicht

Erstellen Sie den erforderlichen Ordner und speichern Sie die Datei wie gewohnt DEST_PATHdarinDEST_PATH

  1. Wenn DEST_PATH nicht vorhanden, endet es mit /

Der Befehl meldet einen Fehler, das Zielverzeichnis muss vorhanden sein

  1. wenn DEST_PATHexistiert und eine Datei ist

Das Ziel wird durch den Inhalt der Quelldatei überschrieben

  1. Wenn DEST_PATH vorhanden und ein Verzeichnis ist

Kopieren Sie Dateien mit dem Basisnamen in SRC_PATHin dieses Verzeichnis

SRC_PATH gibt das Verzeichnis an
  1. Wenn DEST_PATHein Verzeichnis vorhanden ist, wird die Replikation normal kopiert
  • SRC_PATH endet nicht mit /., das Quellverzeichnis wird in dieses Verzeichnis kopiert
  • SRC_PATH endet mit /., in das der Inhalt des Quellverzeichnisses kopiert wird
  1. Wenn DEST_PATHes existiert und eine Datei ist, wird beim Kopieren ein Fehler gemeldet, da das Verzeichnis nicht in eine Datei kopiert werden kann

  2. Wenn DEST_PATH es nicht existiert, wird ein neues Verzeichnis DEST_PATH als Pfad erstellt und der Inhalt des Quellverzeichnisses wird dorthin kopiert

Anwendungsbeispiel

Kopieren Sie Dateien vom Container auf den Host
  1. Das Hostverzeichnis existiert bereits

tomcat_mullerDie Dateien , die wir usr/local/tomcat/README.mdin das Host-Verzeichnis kopieren möchten study, lautet der Befehl wie folgt:

docker cp tomcat_muller:usr/local/tomcat/README.md ./

Führen Sie den Befehl aus. Das Ergebnis ist wie unten gezeigt und wurde erfolgreich in das angegebene Verzeichnis kopiert:

Fügen Sie hier eine Bildbeschreibung ein

  1. Das Hostverzeichnis existiert nicht und /endet nicht mit

tomcat_mullerDie Dateien , die wir usr/local/tomcat/README.mdin das Host-Verzeichnis kopieren möchten study/test, lautet der Befehl wie folgt:

docker cp tomcat_muller:usr/local/tomcat/README.md ./test

Führen Sie den Befehl aus. Das Ergebnis ist wie unten dargestellt. Wir haben das Verzeichnis unter dem Verzeichnis erfolgreich studyerstellt testund die Dateien wurden erfolgreich in das angegebene Verzeichnis kopiert.

Fügen Sie hier eine Bildbeschreibung ein

  1. Das Hosts-Verzeichnis existiert nicht und /endet mit

Wir wollen die Datei in den Pfad des Hosts kopieren tomcat_muller. Der Befehl lautet wie folgt:usr/local/tomcat/README.mdstudy/test/

docker cp tomcat_muller:usr/local/tomcat/README.md ./test/

Führen Sie den Befehl aus. Das Ergebnis sieht wie folgt aus. Da der Pfad nicht vorhanden ist, wird ein Fehler gemeldet. Es gibt kein solches Verzeichnis.

Fügen Sie hier eine Bildbeschreibung ein

  1. In vorhandene Datei kopieren
docker cp tomcat_muller:usr/local/tomcat/README.md test.txt

Führen Sie den Befehl aus und die Ergebnisse sind wie folgt:

Fügen Sie hier eine Bildbeschreibung ein

Der Vorgang beim Kopieren von Verzeichnissen ähnelt dem beim Kopieren von Dateien, daher gehen wir hier nicht näher darauf ein.

Kopieren Sie Dateien vom Host in den Container

Wir wollen die Dateien studyauf dem Host test.txtin den Container kopieren. Der Befehl lautet wie folgt:

docker cp test.txt tomcat_muller:/

Führen Sie den Befehl aus. Das Ergebnis ist wie folgt:
Fügen Sie hier eine Bildbeschreibung ein

Verzeichnis vom Host in den Container kopieren
  1. Zielverzeichnis existiert nicht

Wir möchten study/hogwartsdas Verzeichnis des Hosts in das testVerzeichnis des Containers kopieren. Der Befehl lautet wie folgt:

docker cp hogwarts tomcat_muller:test/

Führen Sie den Befehl aus. Das Ergebnis ist wie folgt:

Fügen Sie hier eine Bildbeschreibung ein

  1. Das Zielverzeichnis ist eine Datei

study/hogwartsWir möchten das Host- Verzeichnis in den Container kopieren muller. Der Befehl lautet wie folgt:

docker cp hogwarts tomcat_muller:muller/
  1. Das Verzeichnis existiert bereits

study/hogwartsWir möchten das Host- Verzeichnis in den Container kopieren /hogwarts. Der Befehl lautet wie folgt:

docker cp hogwarts tomcat_muller:/hogwarts/

Die Ergebnisse der Ausführung des Befehls sind wie folgt:

Fügen Sie hier eine Bildbeschreibung ein

Verzeichnis vom Container auf den Host kopieren

Wir kopieren das Verzeichnis tomcat_mullerim Container webapps.distauf den Host usr/local/study. Der Befehl lautet wie folgt:

docker cp tomcat_muller:/usr/local/tomcat/webapps.dist /home/muller/study

Führen Sie den Befehl aus. Das Ergebnis ist wie folgt:

Fügen Sie hier eine Bildbeschreibung ein

Zusammenfassen

docker cpDer Befehl ist ein praktisches Tool zum Kopieren von Dateien und Verzeichnissen zwischen Docker-Containern und dem Host-Computer. Mit einfachen Befehlen und Parametern können wir Dateien problemlos zwischen Containern und Hosts übertragen. Dieser Artikel beschreibt docker cpdie Syntax und allgemeine Optionen des Befehls und enthält mehrere Beispiele, die Ihnen helfen, seine Verwendung besser zu verstehen. Durch die flexible Verwendung docker cpvon Befehlen können wir problemlos Dateioperationen und -freigaben in der Docker-Umgebung durchführen.

Für weitere technische Informationen klicken Sie bitte!

Ich denke du magst

Origin blog.csdn.net/Tester_muller/article/details/131678630
Empfohlen
Rangfolge