【问题标题】:how can I run docker containers in detached mode within a committed image如何在提交的映像中以分离模式运行 docker 容器
【发布时间】:2014-10-13 08:07:19
【问题描述】:

我提取了一个名为 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                       

首先,虽然新图像在 commit 操作后丢失了 CMD

参考https://github.com/docker/docker/pull/4000,commit后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

【问题讨论】:

  • docker logs 为该容器返回什么?
  • @ThomasOrozco 以下是日志:AH00558:apache2:无法可靠地确定服务器的完全限定域名,使用 172.17.0.31。全局设置“ServerName”指令以禁止显示此消息。 httpd (pid 1) 已经在运行

标签: docker


【解决方案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) already running”。我应该确保在我的初始运行中干净地关闭 apache。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2017-09-04
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多