是否可以取回为生成给定的docker镜像而运行的docker命令?由于docker文件的每一行都应该映射到单个图层,所以这似乎是可能的,但我在文档中看不到任何内容。
答案 0 :(得分:4)
docker history <image>
几乎就是这样。
答案 1 :(得分:3)
您可以使用两个泊坞窗命令的组合来实现您的目标:
docker inspect <image>
和
docker history <image>
或者你可以使用这个很酷的服务来查看生成图像的方式,每个图层都是docker文件中的命令:
答案 2 :(得分:2)
我想这取决于你从哪里获得图像。
如果是these docker containers of mine from the Docker Hub,您可以使用 this link from the right hand side of the webpage要关注this github repo containing the Dockerfile(s)。
我认为没有命令&#34; unassemble&#34;一个容器/图像,并取回制作它的说明。
答案 3 :(得分:2)
是否可以取回为生成给定的docker镜像而运行的docker命令?
不,考虑到你有像docker export
/ docker import
这样的命令可以展平图像:
docker export <containerID> | docker import - <imagename>
生成的图像将从容器构建,并且仅包含一个图层。即使docker history
也无法提供有关原始图像及其原始容器部分的Dockerfile的线索。
答案 4 :(得分:1)
对于您创建的图像,图像元数据(标签)可用于存储Dockerfile https://docs.docker.com/engine/userguide/labels-custom-metadata/
这里提出了初步解决方案https://speakerdeck.com/garethr/managing-container-configuration-with-metadata
这种存储Dockerfile的方法效率不高 - 它需要启动容器才能解压缩Dockerfile。
我个人使用不同的方法 - 使用Base64编码Dockerfile并使用外部参数传递此类编码字符串来设置图像标签。这样您就可以使用inspect直接从图像中读取Dockerfile的内容。 您可以在此处找到详细示例:https://gist.github.com/lruslan/3dea3b3d52a66531b2a1