nginx docker官方镜像添加自定义命令自动退出方式

 更新时间:2026年01月19日 09:28:15   作者:俯仰天地  
文章介绍了在使用Nginx官方Docker镜像时遇到容器自动退出的问题,并解释了原因,通过在CMD命令中添加`-g 'daemon off'`参数,可以确保Nginx在前台运行,从而使容器不会因为CMD命令执行完毕而自动退出

nginx docker官方镜像添加自定义启动命令自动退出

今天在启动nginx官方镜像的时候想在启动后执行一些CMD命令,但发现每次执行完CMD命令后镜像会自动退出,在网上查找后发现:

​ If you add a custom CMD in the Dockerfile, be sure to include -g daemon off; in the CMD in order for nginx to stay in the foreground, so that Docker can track the process properly (otherwise your container will stop immediately after starting)!

译文:

​ 如果你再Dockerfile中添加了一条自定义的CMD命令,为了使nginx保持在前台运行请确定CMD命令中包含参数 -g daemon off; ,这样Docker才能正确的跟踪进程(否则你的容器回在启动后立即停止)

再从docker的运行机制来说明:

docker判断容器是否运行的依据是容器内pid(进程号)为1的进程是否结束,一旦pid=1的进程结束后容器也会随之退出。

在未添加自定义的CMD命令时,nginx容器中pid=1的进程是nginx,而添加了CMD命令后,这条自定义的CMD命令的pid变成了1,而nginx进程转为守护线程的方式来执行,当自定义的CMD命令执行结束后,容器便会随之退出!

解决方法 

添加全局参数 -g ‘daemon off’;

解释:

设置nginx不以守护线程的方式运行,这样nginx始终保持进程号pid=1,这样容器就会随着nginx一直运行下去。

示例:

  • dockerfile
FROM nginx:latest
CMD echo "hello" && exec nginx -g 'daemon off;'
  • 命令行
docker run -itd nginx:latest /bin/bash echo "hello" && exec nginx -g 'daemon of f;'

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nginx和Apache配置SSL证书的实现步骤

    nginx和Apache配置SSL证书的实现步骤

    SSL证书是一种数字证书,用于加密在网络上发送的数据并保护敏感信息的安全性,本文主要介绍了nginx和Apache配置SSL证书的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Nginx负载均衡/SSL配置的实现

    Nginx负载均衡/SSL配置的实现

    这篇文章主要介绍了Nginx负载均衡/SSL配置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • NGINX下配置404错误页面的方法分享

    NGINX下配置404错误页面的方法分享

    NGINX下配置自定义的404页面是可行的,而且很简单,只需如下几步,需要的朋友可以参考下
    2012-11-11
  • Windows下Nginx+PHP5的安装与配置方法

    Windows下Nginx+PHP5的安装与配置方法

    Nginx 是一个轻量级的高性能 Http WebServer,以事件驱动方式编写,因此相比 Apache 而言,Nginx 更加稳定、性能更好,而且配置简单,资源占用较低。
    2010-06-06
  • windows查看nginx是否启动的四种方法

    windows查看nginx是否启动的四种方法

    本文主要介绍了windows查看nginx是否启动的两种方法,文中通过图文代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • Windows下用Nginx配置https服务器及反向代理的问题

    Windows下用Nginx配置https服务器及反向代理的问题

    这篇文章主要介绍了Windows下用Nginx配置https服务器及反向代理的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Nginx配置PATHINFO隐藏thinkphp index.php

    Nginx配置PATHINFO隐藏thinkphp index.php

    这篇文章主要介绍了Nginx配置PATHINFO隐藏thinkphp index.php,本文直接给出配置示例,需要的朋友可以参考下
    2015-07-07
  • 完全卸载nginx以及安装的超详细步骤

    完全卸载nginx以及安装的超详细步骤

    由于之前下载太乱,找相关目录半天找不对位置,所以决定卸载nginx并重新安装,下面这篇文章主要给大家介绍了关于完全卸载nginx以及安装的超详细步骤,需要的朋友可以参考下
    2022-12-12
  • Nginx配置React项目Url后直接输入路由路径时报404问题的解决

    Nginx配置React项目Url后直接输入路由路径时报404问题的解决

    这篇文章主要给大家介绍了关于Nginx配置React项目Url后面直接输入路由路径时报404问题的解决方法,文中通过示例代码将解决的方法介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-11-11
  • Nginx+Tomcat负载均衡集群的实现示例

    Nginx+Tomcat负载均衡集群的实现示例

    本文主要介绍了Nginx + Tomcat负载均衡集群的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论