我在 Docker 容器上安装了 Nginx,并尝试像这样运行它:
docker run -i -t -p 80:80 mydockerimage /usr/sbin/nginx
问题在于 Nginx 的工作方式是初始进程立即生成一个主 Nginx 进程和一些工作人员,然后退出。由于 Docker 只监视原始命令的 PID,因此容器会停止。
如何防止容器停止?我需要能够告诉它绑定(bind)到第一个子进程,或者阻止 Nginx 的初始进程退出。
最佳答案
为了扩展 Charles Duffy 的回答,Nginx 使用 daemon off
指令在前台运行。如果不方便放在配置文件中,我们可以直接在命令行中指定。这样可以很容易地在 Debug模式(前台)下运行,并通过更改命令行参数直接切换到在生产模式下(后台)运行。
在前台运行:
nginx -g 'daemon off;'
在后台运行:
nginx
https://stackoverflow.com/questions/18861300/