douyi1966
2017-06-19 08:57
浏览 125
已采纳

在后台Docker容器中运行apache / php / nginx

I am new to docker. I am trying to run a docker container running Apache and PHP or PHP-FPM.

Like that

docker run -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html php:7.0-apache

And it attaches STDIN/STDOUT to my host machine

docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html php:7.0-apache

Seems to work fine, but I read that

By design, containers started in detached mode exit when the root process used to run the container exits.

Does it mean if I start container from remote ssh connection and then close it, the docker container will stop ?

I am building my custom docker image based on the

library/php/

And I need my image to start automatically in background, not in foreground.

How can I get this behavior ?

图片转代码服务由CSDN问答提供 功能建议

我是docker的新手。 我正在尝试运行一个运行 Apache和PHP PHP-FPM 的docker容器。

就像那样

  docker run -p 80:80 --name my-apache-php-app -v“$ PWD”:/ var / www / html php:7.0-apache 
  <  / pre> 
 
 

它将STDIN / STDOUT附加到我的主机上

  docker run -d -p 80:80 --name my-apache-  php-app -v“$ PWD”:/ var / www / html php:7.0-apache 
   
 
 

似乎工作正常,但我读到了

按照设计,当用于运行容器的root 进程退出时,以分离模式启动的容器退出。 < p>这是否意味着如果我从远程ssh连接启动容器然后关闭它,docker容器将停止?

我正在构建我的自定义docker镜像基于

library / php /

我需要我的图像在后台自动启动,而不是在前台。

我怎样才能得到这种行为?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • donglaogu3788 2017-06-19 09:17
    已采纳

    By design, containers started in detached mode exit when the root process used to run the container exits.

    The root process in this context is the root process inside the container, not the root process used to docker run the container. This process is typically an ENTRYPOINT or CMD in the Dockerfile. For Nginx, often you see something like:

    ENTRYPOINT ['nginx', '-g', 'daemon off']

    This container would exit when the nginx process exits (which shouldn't be immediately unless your nginx configuration is bad, or some other error kills it).

    If you were to have an ENTRYPOINT like this:

    ENTRYPOINT ['nginx', '-t']

    Then the container would test any nginx confs it found, give you the result in STDOUT, and exit.

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题