我在系统中下载了ubuntu os的镜像,然后从中提交了3个镜像(每个镜像都比之前的镜像有增量的变化),现在我有了最终的镜像。现在,我需要该最终镜像的Dockerfile,以便可以在容器的开头包含诸如启动服务之类的命令。
我已经使用了这个命令sudo docker commit --change='CMD service apache2 start' 172d6dc34471 server_startup
使容器运行时启动apache服务。这将启动容器中的服务,但不会进入容器内部。它只是启动apache并退出到我的本地环境。
我想知道如何获取最终镜像的Dockerfile,以便可以包含启动命令。
我也尝试过这个dockerfile from image,但是它不起作用。它只会抛出.sock文件丢失的错误。我已经使用新图像和我首次下载的父图像进行了尝试。
任何帮助深表感谢。谢谢。
最佳答案
您可以使用docker history --no-trunc your_image
它会以相反的顺序向您显示已完成的操作
它比镜像中的dockerfile更加不友好,但是基本上是同一回事。
我在某处有一个Python脚本可以干净地执行此操作,我将检查并发布它。
编辑:只是这应该显示很多docker history your_image | docker inspect $(awk ' NR>1 {print $1}')
关于image - 用于新提交的Docker镜像的Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44321795/