我是码头工人的新手。我正在尝试运行运行Apache and PHP
或PHP-FPM
。
喜欢那个
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 /
我需要我的图像在后台自动启动,而不是在前台。
我怎样才能得到这种行为?
答案 0 :(得分:1)
按照设计,当用于运行容器的根进程退出时,以分离模式启动的容器退出。
此上下文中的根进程是容器内的根进程,而不是用于docker run
容器的根进程。此过程通常是Dockerfile中的ENTRYPOINT或CMD。对于Nginx,通常会看到类似的内容:
ENTRYPOINT ['nginx', '-g', 'daemon off']
当nginx进程退出时,此容器将退出(除非你的nginx配置错误,否则不应该立即退出,或者其他一些错误导致它崩溃)。
如果您有这样的ENTRYPOINT:
ENTRYPOINT ['nginx', '-t']
然后容器会测试它找到的任何nginx confs,在STDOUT中给你结果,然后退出。