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

时间:2017-06-19 08:57:14

标签: php apache docker docker-compose dockerfile

我是码头工人的新手。我正在尝试运行运行Apache and PHPPHP-FPM

的docker容器

喜欢那个

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

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

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

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

  

按照设计,以分离模式启动的容器在根目录时退出   用于运行容器的进程退出。

这是否意味着如果我从远程ssh连接启动容器然后关闭它,docker容器将停止?

我正在构建基于

的自定义泊坞窗图像
  

库/ PHP /

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

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

1 个答案:

答案 0 :(得分:1)

  

按照设计,当用于运行容器的根进程退出时,以分离模式启动的容器退出。

此上下文中的根进程是容器内的根进程,而不是用于docker run容器的根进程。此过程通常是Dockerfile中的ENTRYPOINT或CMD。对于Nginx,通常会看到类似的内容:

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

当nginx进程退出时,此容器将退出(除非你的nginx配置错误,否则不应该立即退出,或者其他一些错误导致它崩溃)。

如果您有这样的ENTRYPOINT:

ENTRYPOINT ['nginx', '-t']

然后容器会测试它找到的任何nginx confs,在STDOUT中给你结果,然后退出。