イメージを実行せずにDockerイメージからファイルを抽出したいです。
このdocker save
オプションは、特定のファイルを解凍するには大きすぎるファイルを保存するため、現在私にとっては実行可能なオプションではありません。
ベストアンサー1
次のコマンドを使用して、イメージからファイルを抽出できます。
container_id=$(docker create "$image")
docker cp "$container_id:$source_path" "$destination_path"
docker rm "$container_id"
~によるとdocker create
文書、コンテナを実行しません。
この
docker create
コマンドは、指定されたイメージに書き込み可能なコンテナレイヤーを作成し、指定されたコマンドを実行できるように準備します。これにより、コンテナIDがに印刷されますSTDOUT
。これはdocker run -d
、コンテナが起動していない場合と同様です。その後docker start <container_id>
、いつでもこのコマンドを使用してコンテナを起動できます。
参考までに(以前の回答)画像からファイルを抽出する効率が低い方法は次のとおりです。
docker run some_image cat "$file_path" > "$output_path"