Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 新提交的docker映像的Dockerfile_Image_Docker_Dockerfile - Fatal编程技术网

Image 新提交的docker映像的Dockerfile

Image 新提交的docker映像的Dockerfile,image,docker,dockerfile,Image,Docker,Dockerfile,我在我的系统中下载了一个ubuntu操作系统的映像,在提交了3个映像后(每个映像都比以前的映像有一个增量更改),我现在有了我的最终映像。现在我想要这个最终图像的Dockerfile,这样我就可以在容器的开头包含启动服务这样的命令 我用过这个命令, sudo docker提交--change='CMD service apache2 start'172dcdc34471服务器启动 使apache服务在容器运行时启动。这将在容器中启动服务,但不会进入容器内部。它只是启动apache并退出到我的本地环

我在我的系统中下载了一个ubuntu操作系统的映像,在提交了3个映像后(每个映像都比以前的映像有一个增量更改),我现在有了我的最终映像。现在我想要这个最终图像的Dockerfile,这样我就可以在容器的开头包含启动服务这样的命令

我用过这个命令,

sudo docker提交--change='CMD service apache2 start'172dcdc34471服务器启动

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

我想知道如何获取最终映像的Dockerfile,以便包含启动命令

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

非常感谢您的帮助。谢谢。

您可以使用

docker历史记录--没有trunc您的图像

它将(以相反的顺序)向您显示所做的事情

它不像来自图像的dockerfile那样对用户友好,但基本上是一样的

我在某个地方有一个Python脚本,它可以干净地完成这项工作,我将检查并发布它

编辑:这应该会显示很多


docker history your|u image | docker inspect$(awk'NR>1{print$1}')

作为CMD,您需要提供一个保持在前台的无后台程序。这不是通过
服务
实现的

你应该试试:

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

很抱歉回复得太晚,我在提交映像时使用了--change参数来指向第一次运行映像时要运行的自定义脚本(我在容器中添加了要在开始时运行的命令列表)

  sudo docker commit --change='ENTRYPOINT ["/test.sh"]' containerId autostart

我不太了解大家建议的dockerfile,但它也是一个很好的解决方案。

我如何使用它来编辑dockerfile?你看,我需要向它添加启动命令。你必须比较原始docker文件和docker history your|u image | docker inspect$(awk'NR>1{print$1}')中显示的命令。这就是我想说的,我没有用于我的图像的dockerfile,因为它是从我提取的另一个图像提交的。您也可以在该图像上执行相同的命令
docker history your|u image | docker inspect$(awk'NR>1{print$1}')
,然后比较两者以获得有关该图像的大量元数据。我如何使用它来创建dockerfile?为什么您需要手动执行这些增量更改,而不是直接使用dockerfile?