如何在已提交的图像中以分离模式运行docker容器

时间:2014-10-13 08:07:20

标签: docker

我已经提取了一个名为 php:5.6-apache 的图片,运行它,触摸/ var / www / html中的文件,然后提交它。

然后我尝试以分离模式运行新图像:

# docker run --name test -d staraple/php:v1

但容器在启动后立即退出。

IMAGE                COMMAND              CREATED                STATUS       
staraple/php:v2  "apache2 -DFOREGROUN   4 seconds ago       Exited (0) 3 seconds ago                       

Fisrt I虽然在提交操作后新图片丢失了 CMD

参考https://github.com/docker/docker/pull/4000,CMD将在提交后保留;

我的问题是为什么我的容器在获得CMD时无法以分离模式运行。 php.5.6-apache 是正式的,我只是触摸其中的空白文件。

PS:     当我在/ var / lib / docker / graph中检查json中的图像时,我发现我的新图像与原始图像有不同的Cmd配置:

 old:  "Cmd":["/bin/sh","-c","#(nop) CMD [apache2 -DFOREGROUND]"]
 new:  "Cmd":["apache2","-DFOREGROUND"]

docker logs显示消息:https (pid 1) already running

1 个答案:

答案 0 :(得分:1)

我收到了来自forums.docker.com的答复:

https://forums.docker.com/t/how-can-i-run-docker-containers-in-detached-mode-within-a-committed-image/255

我提交的图片仍然在FS上有apache pid,它引入了日志“https(pid 1)已经运行”。我应该确保在我的初始运行中干净地关闭apache。

在我的情况下,有必要在提交之前停止容器。