ぶちのブログ

競プロとCTFが趣味なWebエンジニアのアウトプットの場

【小ネタ】dockerのimageからワンライナーでファイルをコピーする簡単な方法

TL;DR

docker cp `docker create ${IMAGE_NAME}`:/path/to/src /path/to/dist

コンテナは各自削除。

はじめに

dockerのcontainerからファイルをコピーするのはdocker cpでできますが、一発でimageからコピーする方法はなさそうです。
調べてもまどろっこしい方法がでてくるのですが、実はコピーするだけなら簡単でしたので備忘ついでに紹介します。

コマンドと解説

docker createコマンドでimageからcontainerを立てることができます。返り値がcontainer_idなので、それをコマンド置換で使って

docker cp `docker create ${IMAGE_NAME}`:/path/to/src /path/to/dist

と書くことができます。

一応、終わった後はdocker rmコマンドでcontainerを消すと丁寧。