1.docker容器跑着为啥会挂掉?

docker 容器默认会把容器内部第一个进程,也就是pid=1的程序作为docker容器是否正在运行的依据,如果docker 容器pid挂了,那么docker容器便会直接退出。

2.docker run的时候把command最为容器内部命令,如果你使用nginx,那么nginx程序将后台运行,这个时候nginx并不是pid为1的程序,而是执行的bash,这个bash执行了nginx指令后就挂了,所以容器也就退出了,和你这个一样的道理,pm2 start 过后,bash 的pid为1,那么此时bash执行完以后会退出,所以容器也就退出了。

Nginx的docker仓库原文说明如下:

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)!

Running nginx in debug mode

Images since version 1.9.8 come with nginx-debug binary that produces verbose output when using higher log levels. It can be used with simple CMD substitution:

$ docker run --name my-nginx -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx nginx-debug -g 'daemon off;'

Similar configuration in docker-compose.yml may look like this:

web:

  image: nginx

  volumes:

    - ./nginx.conf:/etc/nginx/nginx.conf:ro

  command: [nginx-debug, '-g', 'daemon off;']

  

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)!

-- 这里的CMD适用 docker-compose.yml 中的entrypointcommand,以及 Dockerfile 中的ENTRYPOINTCMD

也就是说:

Docker 容器启动时,默认会把容器内部第一个进程,也就是pid=1的程序,作为docker容器是否正在运行的依据,如果 docker 容器pid=1的进程挂了,那么docker容器便会直接退出。

Docker未执行自定义的CMD之前,nginx的pid是1,执行到CMD之后,nginx就在后台运行,bash或sh脚本的pid变成了1。

所以一旦执行完自定义CMD,nginx容器也就退出了。

docker运行nginx为什么要使用 nginx -g 'daemon off;'相关推荐

  1. docker运行报错:Error response from daemon:Container {containerId} is not running

    问题产生: 已启动docker服务systemctl start docker.service,由于本地8080端口之前已经在使用忘记关闭了,在执行docker run -dit --privileg ...

  2. Docker(3):docker运行nginx实例以及在java容器中运行java程序

    一.目的 通过运行nginx可以充分理解运行镜像原理,以及镜像内部虚拟网络端口和服务器端口的桥接关系.同时,使用java容器,编译java文件,并且运行java程序. 二.docker运行nginx镜 ...

  3. docker 运行 php nginx_docker搭建nginx+mysql+php

    主要概念是 容器 和 镜像. 要先有镜像,启动镜像后,才有容器的出现. 不恰当地用类和实例来理解,镜像是类,容器是实例. 部分命令 拉取镜像docker pull {{具体镜像}}查看本机镜像dock ...

  4. centos 访问网页重启php_php项目上线基于docker运行php+源码编译实现Nginx+阿里云RDS连接实现...

    项目背景: 公司项目上线要求运维把上线工作做好,并实现稳定性运行,活不多说,干! 环境要求: CentOS Linux release 7.2.1511 (Core) docker 版本:19.03. ...

  5. [docker]三、docker理论概念(镜像、仓库、容器),用docker运行nginx来搭建一个属于自己网站。查看进程监听哪个端口的命令

    目录 1.docker概念 1.1.镜像(image) 1.2.容器(container) 1.3.仓库(repository) 1.4.理解 2.用docker运行nginx 2.1.正常命令开启n ...

  6. win docker运行nginx

    docker pull nginx # 拉取镜像 mkdir -p //f/DATA/docker-data/nginx/conf # 创建配置文件目录# 拷贝配置文件 docker run --na ...

  7. Ubuntu 17.04 x64 安装 Docker CE 初窥 Dockerfile 部署 Nginx

    Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署.测试和分发都变得前所未有的高效和轻松! 无 ...

  8. 基于nerdctl + buildkitd构建容器镜像,运行tomcat后端服务和nginx前端服务

    目录 简介: 一.部署buildkitd 1.下载二进制包 2. 解压二进制包,并移到全局变量中 3.创建socket文件,service文件 4.启动服务 二.使用nerdctl命令测试镜像构建 1 ...

  9. 写给Java开发看的 Docker 干货(零基础部署Nginx MySQL SpringBoot)

    前言 Docker是当下使用最多的一种容器技术,想精通Docker并不容易,在公司生产中会有专门的运维人员负责.但是身为开发人员,适当的学习Docker是必要的.Docker的好处这里就不介绍了,网上 ...

最新文章

  1. Linux-Copy On Write写时复制机制初探
  2. pdf常用字体包 -baijiahao_PDF 的各种操作,我用 Python 来实现(附网站和操作指导)
  3. boost::posix_time模块实现闹钟的测试程序
  4. jQuery下table操作示例(附案例源码)
  5. PHP 基本语法,变量
  6. 自己编制windows的后台进程程序
  7. awk 匹配_linux的awk命令详解,通俗易懂
  8. HTML-超链接锚点笔记
  9. FCKeditor上传漏洞总结
  10. ik做尾巴摆动 maya_【周六幸福时刻】故事分享:小蝌蚪尾巴怎么没了
  11. 外部表不是预期的格式怎么解决_1分钟拆解:如何将10多个工作表sheet,合并成一张?...
  12. (免费领取Java面试题)Java面试中经常被问到的问题
  13. Qt:#pragma comment(lib,“ws2_32.lib“) 报错
  14. 计算机设计大赛材料准备讲解
  15. 仿网易评论盖楼的留言板插件demo
  16. matlab rms数据滤波,与RMS相关的5个信息,如何通过RMS结果滤波来提高精度
  17. linux带方括号进程,Linux特殊符号大全(转摘)
  18. 2021-2027全球与中国卸扣式绝缘子市场现状及未来发展趋势
  19. 适合520送礼物的无线蓝牙耳机,颜值高性价比高的520无线蓝牙耳机
  20. 微信小程序 Basic Auth 前后端restful api进行身份验证

热门文章

  1. 本地打印机打印服务器上文件,Web本地打印机打印问题?
  2. 一小时教你学会 ARM 架构
  3. 记录Tomcat配置context.xml自动缓存问题
  4. linux 系统rc.d启动脚本剖析
  5. (2-1)二阶线性常微分方程相关理论
  6. LiveGBS国标GB/T28181流媒体平台功能-作为下级国标平台级联到第三方海康大华宇视华为等国标平台及其它政务公安内网国标视频平台
  7. MAC地址表及邻居信息查看;配置接口速率及双工模式;配置交换机管理IP
  8. QQ强行聊天 批处理源码
  9. KDZD耐电压高压击穿强度测试仪
  10. 移动互联网广告横飞市场乱象