新提交的Docker镜像的Dockerfile

我在我的系统中下载了一个Ubuntu操作系统的映像,并且在从映像中提交了3个映像之后(每个映像都有一个从映像之前的增量变化),现在我有了最终映像。 现在我想要这个最终图像的Dockerfile,以便我可以在容器的开始处包含像启动服务一样的命令。

我用过这个命令,

sudo docker commit --change='CMD service apache2 start' 172d6dc34471 server_startup

在容器运行时启动apache服务。 这启动容器中的服务,但不进入容器内。 它只是启动Apache并退出到我的本地环境。

我想知道如何获得我的最终形象的Dockerfile,以便我可以包含启动命令。

我也尝试了这个docker文件从图像 ,但它不工作。 它只是抛出.sock文件丢失的错误。 我已经尝试了这个新的图像和我第一次下载的父图像。

任何帮助深表感谢。 谢谢。

您可以使用

docker history --no-trunc your_image

它会显示你(以相反的顺序)做了什么

它比图像中的dockerfile不太友好,但它基本上是一样的。

我有一个干净的Python脚本,我会检查并发布它。

编辑:这应该显示很多

docker history your_image | docker inspect $(awk ' NR>1 {print $1}')

作为CMD,您需要提供一个保持在前台的无后台程序。 这不是由service完成的。

你应该试试:

 sudo docker commit --change='CMD apache2 -DFOREGROUND' 172d6dc34471 server_startup