docker优雅停止容器

devtools/2025/1/9 0:35:31/

优雅停止容器

docker stop: 先请求容器进程停止,如果10秒后未停止,将会强制kill该进程。

docker stop命令试图向容器内的根进程(PID1)发送SIGTERM信号来停止正在运行中的容器。如果根进程在超时时间(默认10s)内没有退出,便会发出SIGKILL信号

# 指定超时时间去停止容器
docker stop --time=30  容器

Dockerfile中配置优雅停止容器

# 以exec格式的CMD指令 -- 可实现优雅停止容器服务
CMD ["java", "-jar", "/home/demo.jar"]

查看pid为1
在这里插入图片描述

测试优雅停止容器耗时
在这里插入图片描述

处理信号

不同的应用处理方式不一致。

在这里插入图片描述

  • 1) SIGHUP 当终端断开(挂机)时,将发送该信号给终端控制进程。SIGHUP 信号还可用于守护进程(比如,init 等)。许多守护进程会在收到 SIGHUP 信号时重新进行初始化并重读配置文件。
  • 2) SIGINT 当用户键入终端中断字符(通常为 Control-C ) 时,终端驱动程序将发送该信号给前台进程组。该信号的默认行为是终止进程。
  • 3) SIGQUIT 当用户在键盘上键入退出字符(通常为 Control-\ )时,该信号将发往前台进程组。默认情况下,该信号终止进程,并生成用于调试的核心转储文件。进程如果陷入无限循环,或者不再响应时,使用 SIGQUIT
    信号就很合适。
  • 9) SIGKILL 此信号为 “必杀(sure kill)” 信号,处理器程序无法将其阻塞、忽略或者捕获,故而 “一击必杀”,总能终止程序。
  • 15) SIGTERM 这是用来终止进程的标准信号,也是 kill 、 killall 、 pkill 命令所发送的默认信号。精心设计的应用程序应当为 SIGTERM
  • 信号设置处理器程序,以便其能够预先清除临时文件和释放其它资源,从而全身而退。因此,总是应该先尝试使用 SIGTERM 信号来终止进程,而把 SIGKILL 作为最后手段,去对付那些不响应 SIGTERM 信号的失控进程。
    
  • 20) SIGTSTP 这是作业控制的停止信号,当用户在键盘上输入挂起字符(通常为 Control-Z )时,将该信号给前台进程组,使其停止运行
# 向容器发送SIGINT信号(等于在终端执行Ctrl-C)至容器
# docker kill --signal=SIGINT 容器# 优雅关闭nginx服务 
docker kill --signal=SIGQUIT nginx# 优雅关闭Apache服务
docker kill --signal=SIGWINCH apache

http://www.ppmy.cn/devtools/149026.html

相关文章

redis Redis内存缓存过期机制

起因:随着项目的进一步推广,数据量的增大,直接访问mysql数据库获取数据所使用的时间越来越长,为解决当前主要矛盾,决定引入redis非关系型数据库作为缓存层,使得数据并不能直接命中数据库,减少访…

数据库系统概论期末复习

期末考试题型: 选择题 20题 20分 判断题 10题 10分 简答题 4题 20分 SQL语句: (select delete update)30分 设计题:ER图 和关系模式 ER转关系模式,注意主码,外码的标注 15分 应用题:…

微服务拆分的艺术:构建高效、灵活的系统架构

目录 一、微服务拆分的重要性 二、微服务拆分的策略 1. 按照业务领域拆分 2. 按照团队结构拆分 3. 按照业务边界拆分 4. 按照数据和数据库拆分 5. 按照用户界面或外部接口拆分 6. 按照功能模块或领域驱动设计拆分 7. 按照性能和可伸缩性需求拆分 三、微服务拆分的实践…

JavaEE初阶——计算机工作原理

一、什么是JavaEE JavaEE(Java Platform,Enterprise Edition)是sun公司(2009年4月20日甲骨文将其收购)推出的企业级应用程序版本。这个版本以前称为 J2EE。能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器…

SQL与数据库交互:Java的财富管理

1 SQL概述 SQL(Structured Query Language)是一种专门用来与数据库通信的语言。它包括了数据查询、数据操作、数据定义和数据控制等多种功能。 2 SQL的基本操作 SQL的基本操作包括: 查询(SELECT):从数据库…

基于微信小程序疫苗预约系统ssm+论文源码调试讲解

第四章 系统设计 到目前为止,市面上已经存在了各种各样的软件系统,从系统的分类着手,主要应用范围倾向于办公系统,娱乐系统,社交系统,然后下面有很多比较细的分支系统。很多系统已经经过了市场的考验&…

Elixir语言的正则表达式

Elixir语言中的正则表达式 引言 正则表达式是用于匹配文本模式的一种强大工具。在很多编程语言中,正则表达式被广泛应用于字符串的查找、替换和验证。Elixir作为一门现代化的函数式编程语言,也提供了对正则表达式的支持,方便开发者进行复杂…

分享3个国内使用正版GPT的网站【亲测有效!2025最新】

1. molica 传送入口:https://ai-to.cn/url/?umolica 2. 多帮AI 传送入口:https://aigc.openaicloud.cn?inVitecodeMYAAGGKXVK 3. 厉害猫 传送入口:https://ai-to.cn/url/?ulihaimao