Moje pytanie dotyczy tego pytania o kopiowanie plików z kontenerów na hosty; Mam plik Dockerfile, który pobiera zależności, kompiluje artefakt kompilacji ze źródła i uruchamia plik wykonywalny. Chcę również skopiować artefakt kompilacji (w moim przypadku jest to .zipwyprodukowany przez sbt dist'../ target / `, ale myślę, że to pytanie dotyczy również słoików, plików binarnych itp.
docker cpdziała na kontenerach, a nie na obrazach; czy muszę uruchomić kontener tylko po to, aby pobrać z niego plik? W skrypcie próbowałem uruchomić /bin/bashw tle w trybie interaktywnym, kopiując plik, a następnie zabijając kontener, ale wydaje się to niezdarne. Czy jest lepszy sposób?
Z drugiej strony chciałbym uniknąć rozpakowywania .tarpliku po uruchomieniu docker save $IMAGENAMEtylko po to, aby wyjąć jeden plik (ale wydaje się to obecnie najprostszą, jeśli najwolniejszą opcją).
Użyłbym woluminów dockera, np .:
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
ale pracuję boot2dockerw systemie OSX i nie wiem, jak bezpośrednio pisać do systemu plików hosta Mac (woluminy do odczytu i zapisu są montowane w mojej maszynie wirtualnej boot2docker, co oznacza, że nie mogę łatwo udostępnić skryptu do wyodrębnienia blah.zipz obrazu inni.
createdodano / usunięto z polecenia (nie ma go w wersji 1.01)