Aber genug Lob über Docker. In diesem Artikel werden wir diskutieren, wie Dateien in und von einem Container in das Hostsystem kopiert werden und umgekehrt.”
Lass uns anfangen
Docker CP
Docker CP ist ein Befehlszeilendienstprogramm, mit dem Sie Dateien und Verzeichnisse zwischen Systemen kopieren können. Der Befehl nimmt eine sehr einfache Syntax an, die einen einfachen Workflow ermöglicht.
Die Befehlssyntax:
Docker CP [Optionen] Container: src_path dest_path |-Das CP -Dienstprogramm kopiert die vom SRC_Path angegebenen Dateien in das dest_path. Auf diese Weise können Sie aus dem Container in das Hostsystem kopieren und umgekehrt.
Der Container kann ausgeführt oder gestoppt werden, und der Befehl führt den Kopiervorgang erfolgreich aus.
Wenn ein Verzeichnis angegeben ist, kopiert der Befehl die Dateien rekursiv in das angegebene Ziel.
Um Dateien aus dem Host -System in einen Container zu kopieren, können Sie die Syntax verwenden:
$ docker cp host_path container_id: PfadDieselbe Befehlssyntax gilt, wenn Sie Dateien aus dem Container in das Hostsystem kopieren möchten:
$ docker cp container_id: src_path host_pathLassen Sie uns sehen, wie wir dies mit praktischen Beispielen erreichen können.
Holen Sie sich laufende Behälter
Der erste Schritt besteht darin, die Namen und IDs der laufenden Container zu erhalten. Wir können dies mit dem Befehl Docker PS tun.
$ docker psSobald Sie den Container und den Namen oder die ID erhalten haben, können wir fortfahren. Sie können die ID in den Spalten Container -ID und Namen erhalten.
Kopieren Sie Dateien vom Hostsystem zum Container
Angenommen, wir haben eine Datei namens Backups.Tar auf dem Desktop des Host -Systems und möchte es in den Debian11 -Container kopieren.
Wir können den Befehl ausführen:
Docker CP ~/Desktop/Backups.TAR DEBIAN11:/HOMEDer obige Befehl kopiert die Sicherungen.TAR -Datei in das Heimverzeichnis des angegebenen Containers.
Wir können überprüfen, ob die Datei existiert, indem wir den Befehl ausführen:
$ docker exec -ti debian11 /bin /bashDer obige Befehl sollte es Ihnen ermöglichen, sich in den Container anzumelden und eine Bash -Shell hervorzubringen.
Sie können jetzt die Dateien und Verzeichnisse im Container als:
root@f657ea827600: /# ls -la /homeWir können sehen, dass die Datei erfolgreich in den Container kopiert wurde.
Wenn Sie die Container -ID verwenden möchten, können Sie den Befehl ausführen:
Docker CP ~/Desktop/Backups.TAR F657EA827600:/HOMEHinweis: Wenn eine Datei mit einem ähnlichen Namen als angegebener Zielpfad vorliegt, überschreibt der Befehl sie ohne Eingabeaufforderung.
Docker -Datei vom Container zum Host kopieren
Wir können den Befehl auch verwenden, um Dateien aus dem Container in das Hostsystem zu kopieren. Nehmen wir beispielsweise an, wir möchten die Protokolle aus dem Container in das Protokollverzeichnis im Desktop -Ordner des Hosts kopieren.
Wir können den Befehl ausführen:
$ sudo docer cp debian11:/var/log/~/desktop/logsIm obigen Befehl mitteilen wir den Befehl docker cp, die Dateien aus dem Verzeichnis /var /Protokoll im Debian11 in das Protokoll -Verzeichnis im Host -System zu kopieren.
Wir können dies überprüfen, indem wir den Befehl ausführen:
$ ls -ls ~/desktop/ProtokolleDocker CP Preserve Attribute
Sie werden feststellen, dass Docker, sobald wir eine Datei in und vom Host -System kopieren, die Attribute wie Berechtigungen, UIDs usw. nicht bewahrt haben.
Wir können dies lösen, indem wir das Flag -A -Flag im Befehl Docker CP anhängen.
$ docker cp -a host_path Container: PfadEin Beispiel ist wie gezeigt:
sudo docker cp -a debian11:/var/log/~/desktop/logsWir können sehen, dass die Berechtigungen einem der kopierten Dateien im Container ähnlich sind.
Abschluss
In diesem Tutorial haben Sie erfahren.
Danke fürs Lesen!!