zoukankan      html  css  js  c++  java
  • 使用Docker构建nginx容器,并且启动后不会自动退出

    为什么docker运行后就自动退出?

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

    docker run的时候把command做为容器内部命令,如果你使用nginx,那么nginx程序将后台运行,这个时候nginx并不是pid为1的程序,而是执行的bash,这个bash执行了nginx指令后就挂了,所以容器也就退出了。

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

    Docker未执行自定义的CMD之前,nginx的pid是1,执行到CMD之后,nginx就在后台运行,bash或sh脚本的pid变成了1。
    所以一旦执行完自定义CMD,nginx容器也就退出了。

    解决方法:

    在编写dockerfile的时候加上  “daemon off;”参数,如下:

    FROM ubuntu:16.04
    
    Run apt-get update
    Run apt-get install -y nginx
    
    CMD ["nginx","-g","daemon off;"]

    构建容器后使用:

    docker run -d ubuntu:16.04   #-d参数让容器在后台运行

    启动容器后nginx会在后台运行

  • 相关阅读:
    前端Javascript
    第十一周双闭环控制
    补第九周手绘图
    第十一周仿真作业
    第九周PLECS仿真
    第五六周读书笔记
    PLECS模拟与设计结构-4
    机电传动控制读书笔记-3
    PLECS仿真报告2
    PLECS仿真报告
  • 原文地址:https://www.cnblogs.com/liyuanhong/p/10167863.html
Copyright © 2011-2022 走看看