Meine Frage bezieht sich auf diese Frage zum Kopieren von Dateien von Containern auf Hosts. Ich habe eine Docker-Datei, die Abhängigkeiten abruft, ein Build-Artefakt aus dem Quellcode kompiliert und eine ausführbare Datei ausführt. Ich möchte auch das Build-Artefakt kopieren (in meinem Fall ist es ein .zip
von sbt dist
'../ target /' erstelltes, aber ich denke, diese Frage gilt auch für Gläser, Binärdateien usw.).
docker cp
arbeitet an Containern, nicht an Bildern; Muss ich einen Container starten, um eine Datei daraus zu erhalten? In einem Skript habe ich versucht, /bin/bash
im interaktiven Modus im Hintergrund zu laufen , die Datei zu kopieren und dann den Container zu beenden, aber das scheint kludgey. Gibt es einen besseren Weg?
Andererseits möchte ich vermeiden, dass eine .tar
Datei nach dem Ausführen entpackt wirddocker save $IMAGENAME
entpacken, um nur eine Datei herauszuholen (aber das scheint derzeit die einfachste, wenn auch langsamste Option zu sein).
Ich würde Docker-Volumes verwenden, z.
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
Ich arbeite jedoch unter boot2docker
OSX und weiß nicht, wie ich direkt in mein Mac-Host-Dateisystem schreiben soll (Lese- / Schreib-Volumes werden in meiner boot2docker-VM bereitgestellt, was bedeutet, dass ich ein Skript zum Extrahieren blah.zip
aus einem Image nicht einfach freigeben kann andere. Gedanken?
create
Befehl hinzugefügt / entfernt (es ist nicht in 1.01 vorhanden)