是否可以从图像生成 Dockerfile?我想知道有两个原因:
我可以从存储库下载图像,但想查看生成它们的配方。
我喜欢保存快照的想法,但是一旦我完成了,最好有一个结构化的格式来查看所做的事情。
最佳答案
How to generate or reverse a Dockerfile from an image?
你可以。大部分。
注意:它不会生成可以直接与docker build
一起使用的Dockerfile
;输出仅供引用。
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/repository/docker/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
左边是每一层的命令,右边(用tab跳转),黄线是那个层中一些文件被改变的文件夹
(使用SPACE折叠目录)
旧答案
下面是旧答案,它不再起作用了。
$ 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
关于image - 如何从图像生成 Dockerfile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104847/