美文网首页
docker容器中进程启动的两种模式

docker容器中进程启动的两种模式

作者: Mrmcling | 来源:发表于2021-09-08 20:45 被阅读0次

1.shell方式启动

如dockerfile中定义

CMD "./run"

则容器内的PID为1的进程为/bin/sh -c "./run"

另外又有个进程./run

2.exec方式启动

如dockerfile中定义

CMD ["./run"]

则容器内的PID为1的进程直接就是./run

有何不同?退出机制可能大不相同

背景:docker stop的时候,会向PID为1的进程发送SIGTERM信号,通知进程关闭。如果10秒钟依然没有关闭,将会发送SIGKILL强制kill进程。

不同之处:

1.exec启动的进程会接收到SIGTERM信号,程序自行处理该信号,清理资源,优雅关闭。

2.shell启动的进程会接收到SIGTERM信号,但是shell进程没有处理该信号的逻辑,所以直接忽略该信号。

一直等到10秒后超时,收到了SIGKILL信号,强制kill所有的进程。

这时资源来不及释放,会导致各种数据不一致的问题。

相关文章

  • Docker-参数详解

    Docker参数详解。 -d:以守护进程方式运行(后台)。 -i:表示以“交互模式”运行容器 -t:表示容器启动后...

  • docker 基本使用操作2

    今日份更新使用docker的操作 # 查看docker 容器的进程号 # 首先要启动docker 容器docker...

  • docker容器中进程启动的两种模式

    1.shell方式启动 如dockerfile中定义 CMD "./run" 则容器内的PID为1的进程为/bin...

  • docker 中运行erlang集群

    erlang 启动 docker容器是否退出跟容器的主进程有关,主进程结束后,容器就exit了,那么erlang ...

  • Docker入门之简单操作

    1 Docker启动容器 Docker启动容器有两种方式: 基于镜像新建一个容器并启动; 将处于终止状态 (exi...

  • docker跨主机联通

    当Docker容器进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接...

  • docker常用命令

    创建容器 启动容器 docker start lnmp(容器名) 在容器mynginx中开启一个交互模式的终端(进...

  • centos docker容器自启动

    docker加入自启动 修改已有容器为自启动模式

  • Docker常用容器启动命令

    docker启动mysql容器 docker启动nginx容器 docker启动redis容器 docker启动p...

  • Linux常用命令

    docker docker中 启动所有的容器命令 \ docker中 关闭所有的容器命令\ docker中 删除所...

网友评论

      本文标题:docker容器中进程启动的两种模式

      本文链接:https://www.haomeiwen.com/subject/pscbwltx.html