我刚刚开始使用Docker,能够看到用于创建现有docker镜像的Dockerfiles非常有用。
即使图像是通过手动运行命令构建的,然后提交到标签,最好能够看到图像是如何制作的,无论是出于学习目的还是出于安全考虑。
有没有办法提取Dockerfile或用于构建给定docker镜像的命令列表?
答案 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中提取文件。
答案 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。