Kopieren von Dateien vom Host in den Container
Das Kopieren von Dateien vom Host-System (Ihrem lokalen Rechner) in einen Docker-Container ist eine häufige Aufgabe bei der Arbeit mit Docker. Dies ist oft notwendig, wenn Sie Ihrer Anwendung zusätzliche Dateien, Konfigurationen oder Daten zur Verfügung stellen müssen, die nicht im Image des Containers enthalten sind.
Der Befehl docker cp
Der Befehl docker cp
wird verwendet, um Dateien oder Verzeichnisse zwischen dem Host-System und einem laufenden Docker-Container zu kopieren. Die Syntax des Befehls lautet wie folgt:
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH
Dabei gilt:
SRC_PATH
ist der Pfad zur Datei oder zum Verzeichnis auf dem Host-System.
CONTAINER
ist der Name oder die ID des Docker-Containers.
DEST_PATH
ist der Pfad innerhalb des Docker-Containers, an den die Datei oder das Verzeichnis kopiert werden soll.
Hier ist ein Beispiel, wie Sie den Befehl docker cp
verwenden, um ein Verzeichnis vom Host-System in einen Docker-Container zu kopieren:
## Kopieren Sie das Verzeichnis "my-files" vom Host in das Verzeichnis "/app" im Container
docker cp ./my-files mycontainer:/app
Kopieren von Dateien während der Containererstellung
Alternativ können Sie Dateien auch während des Containererstellungsprozesses vom Host-System in einen Docker-Container kopieren. Dies geschieht mithilfe der COPY
-Anweisung im Dockerfile, die die zu kopierenden Dateien oder Verzeichnisse aus dem Build-Kontext (dem Verzeichnis, in dem sich das Dockerfile befindet) in das Dateisystem des Containers spezifiziert.
Hier ist ein Beispiel für ein Dockerfile, das ein Verzeichnis vom Host-System in den Container kopiert:
## Dockerfile
FROM ubuntu:22.04
COPY ./my-files /app
CMD ["bash"]
In diesem Beispiel kopiert die COPY
-Anweisung das Verzeichnis my-files
aus dem Build-Kontext in das Verzeichnis /app
innerhalb des Containers.
Durch das Verständnis des Kopiervorgangs von Dateien vom Host in einen Docker-Container können Sie die notwendigen Ressourcen für Ihre containerisierten Anwendungen effektiver verwalten und verteilen.