Docker イメージを基にどんな Dockerfile が書かれていたか復元する

ある Docker イメージを見た時に、どのような Dockerfile によってそのイメージが生まれたのかを調べる方法。

$ docker history --no-trunc 【IMAGE NAME】:【TAG】

# 例えば以下のように
$ docker history --no-trunc node:14-alpine
$ docker history --no-trunc my-example-image:0.1

docker historydocker image history というコマンドで書いても同じ。

ターミナル上だと読みづらいと思うので、> docker-history.txt のようにファイルに書き出して読むと良いだろう。

EXPOSECOPYRUN 命令などの実行内容と順序が確認できるので、どういう apt-getyum が実行されたかとか、おおよそどんなファイルがコピーされたか、などが読み解ける。

COPY についてはハッシュ値しか分からず、ファイルの中身までは知りようがない。