イメージからDockerfileを生成するにはどうすればいいですか? 質問する

イメージからDockerfileを生成するにはどうすればいいですか? 質問する

イメージから Dockerfile を生成することは可能ですか? 知りたい理由は 2 つあります。

  1. リポジトリから画像をダウンロードすることはできますが、それを生成したレシピを確認したいと思います。

  2. スナップショットを保存するというアイデアは気に入っていますが、完了したら、実行した内容を確認するための構造化された形式があると便利です。

ベストアンサー1

イメージから Dockerfile を生成または逆コンパイルするにはどうすればよいでしょうか?

できますよ。大抵は。

Dockerfile注:で直接使用できる は生成されませんdocker build。出力は参考用です。

alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36 nginx:latest

対象の Docker イメージを自動的にプルしてエクスポートしますDockerfile。パラメータは-sV=1.36必ずしも必要ではありません。

参照:https://hub.docker.com/r/alpine/dfimage

特定のタグを選択すると、hub.docker.com で詳細コマンドを使用してイメージ レイヤーが直接表示されるようになりました。

ここに画像の説明を入力してください

ボーナス

各レイヤーでどのファイルが変更されるか知りたい場合

alias dive="docker run -ti --rm  -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive nginx:latest

ここに画像の説明を入力してください

左側には各レイヤーのコマンドが表示され、右側(タブで移動)の黄色の線はそのレイヤーでいくつかのファイルが変更されるフォルダーです。

(ディレクトリを折りたたむにはスペースを使用します)

古い回答

以下は古い回答であり、もう機能しません。

$ docker pull centurylink/dockerfile-from-image
$ alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm centurylink/dockerfile-from-image"
$ dfimage --help
Usage: dockerfile-from-image.rb [options] <image_id>
    -f, --full-tree                  Generate Dockerfile for all parent layers
    -h, --help                       Show this message

おすすめ記事