是否可以从docker容器中提取Dockerfile

时间:2014-06-23 07:30:17

标签: docker

我刚刚开始使用Docker,能够看到用于创建现有docker镜像的Dockerfiles非常有用。

即使图像是通过手动运行命令构建的,然后提交到标签,最好能够看到图像是如何制作的,无论是出于学习目的还是出于安全考虑。

有没有办法提取Dockerfile或用于构建给定docker镜像的命令列表?

3 个答案:

答案 0 :(得分:31)

docker history <image>非常有帮助。如果没有涉及stdin的步骤,它甚至可以用于生成dockerfile。

如果作为标准输入的步骤,知道发生了什么的唯一方法是docker logs <container id parent>,但如果没有容器,则不能。

答案 1 :(得分:12)

现在有取消停车。 我们可以使用pip命令安装它。

pip install git+https://github.com/larsks/undocker/ 

并使用

docker save IMAGE_NAME | undocker -i -o IMAGE_NAME 

从docker中提取文件。

https://github.com/larsks/undocker/

答案 2 :(得分:3)

有一个项目dockerfile-from-image可以帮助您直接进行。

它需要一个CLI命令来恢复Dockerfile:

docker run -v /var/run/docker.sock:/var/run/docker.sock centurylink/dockerfile-from-image <IMAGE_TAG_OR_ID>

必须安装Docker。