我已经提取了一个名为 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
。
答案 0 :(得分:1)
我收到了来自forums.docker.com的答复:
我提交的图片仍然在FS上有apache pid,它引入了日志“https(pid 1)已经运行”。我应该确保在我的初始运行中干净地关闭apache。
在我的情况下,有必要在提交之前停止容器。