私の質問は、コンテナからホストへのファイルのコピーに関するこの質問に関連しています。依存関係をフェッチし、ソースからビルド アーティファクトをコンパイルし、実行可能ファイルを実行する Dockerfile があります。ビルド アーティファクトもコピーしたい (私の場合は '../target/` で.zip作成されたものsbt distですが、この質問は jar やバイナリなどにも当てはまると思います。
docker cpイメージではなくコンテナで動作します。コンテナからファイルを取得するためだけにコンテナを起動する必要がありますか? スクリプト/bin/bashで、バックグラウンドで対話モードで実行し、ファイルをコピーしてからコンテナーを強制終了しようとしましたが、これは面倒です。より良い方法はありますか?
一方、 1 つのファイルを取得するためだけに.tar実行後にファイルを解凍することは避けたいと思いdocker save $IMAGENAMEます (ただし、現時点では、最も遅い場合でも、これが最も簡単なオプションのように思えます)。
たとえば、docker ボリュームを使用します。
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
しかし、私はboot2dockerOSX で実行していて、Mac ホスト ファイルシステムに直接書き込む方法がわかりません (読み取り/書き込みボリュームが boot2docker VM 内にマウントされているためblah.zip、イメージから抽出するスクリプトを簡単に共有することはできません)。他の人。