Extrahieren Sie Dateien aus Docker Image

einpacken

Da es nicht direkt aus dem Bild extrahiert werden kann, starten Sie den Container wie unten gezeigt und kopieren Sie ihn mit "Docker CP".

CONTAINER_ID=`docker create $IMAGE_NAME`
docker cp $CONTAINER_ID:$FILEPATH .

Hintergrund

Möglicherweise möchten Sie den Quellcode oder die Quelldateien in einem Image abrufen, das Sie für Fehler- oder Spezifikationsuntersuchungen bereitgestellt haben. Ich habe die Vorgehensweise zu diesem Zeitpunkt zusammengefasst.

Suchen Sie den Zieldateipfad

Alles, was Sie wissen müssen, ist der Pfad der Zieldatei oder des Zieldverzeichnisses. Wenn nicht, müssen Sie nach innen schauen, um zu finden, wonach Sie suchen.

Suche mit der Shell

Es sollte / bin / bash und / bin / sh enthalten, verwenden Sie es also, um Dateien interaktiv zu finden. docker run --rm -it $IMAGE_NAME /bin/bash

Wenn es nicht enthalten ist, können Sie es als Basis-Image der Docker-Datei verwenden und ein installiertes Image erstellen.

Achten Sie beim Tauchen auf Unterschiede zwischen den Schichten

Sie können den Dateibaum für jede Ebene mithilfe von Tauchgang anzeigen. Wenn Sie wissen, dass es in einer bestimmten Ebene hinzugefügt wurde, finden Sie es möglicherweise schneller. dive $IMAGE_NAME

Der folgende Artikel ist hilfreich für die Verwendung von Tauchen. https://qiita.com/t_o_d/items/625ad7a274ca34be3312

Kopieren Sie die Zieldatei

Es scheint, dass Dateien nicht direkt aus dem Bild extrahiert werden können. Daher können Sie die Dateien und Ordner kopieren, indem Sie den Container starten und wie unten gezeigt mit "Docker CP" kopieren.

# IMAGE_Legen Sie den Namen des Zielbilds in NAME und den Dateipfad im Docker-Image der Zieldatei in FILEPATH fest.
IMAGE_NAME=me/my_application:1.0.0
FILEPATH=/app/scripts/woker/

CONTAINER_ID=`docker create $IMAGE_NAME`
docker cp $CONTAINER_ID:$FILEPATH .
docker rm $CONTAINER_ID

Recommended Posts

Extrahieren Sie Dateien aus Docker Image
[Docker] Kopieren Sie Dateien aus dem Docker-Container auf den Host
Erfahren Sie mehr über das Docker-Image und das FROM der Docker-Datei
Kopieren Sie Dateien vom Docker-Container auf den Host (Docker-CP).
Nicht verwendetes Docker-Image löschen
Bereitstellen von einem lokalen Docker-Image auf Heroku
Verwenden von Docker von Java Gradle
Installieren Sie openjdk8 auf dem Docker-Image (Debian).
Migrieren Sie das Docker-Image auf einen anderen Server
Stellen Sie das Docker-Image von Flask in Heroku bereit
Extrahieren Sie die erforderlichen Informationen aus pom.xml
2. Erstellen Sie ein Docker-Image und registrieren Sie die Registrierung
Starten Sie Apache mit dem PHP-Apache-Image des Dockers neu
Aktualisieren Sie MySQL mit Docker von 5.7 auf 8.0
[Splunk] Erstellen von Splunk Enterprise (mit Docker-Image)