[实战]Docker应用自动重启

ops/2024/12/28 0:59:21/

场景

Java应用,在凌晨定时任开始时运行一段时间后,会自动重启,导致定时任务失败。该应用使用Docker部署

分析

Docker应用运行一段时间自动重启可能的原因为容器分配的资源(如CPU、内存)不足,系统可能会杀死容器进程以释放资源。Docker随后可能会根据重启策略重启容器

采用docker stats命令监控容器的资源使用情况, 同时手动触发定时任务。观察内存使用情况

发现 MEM USAGE 会接近LIMIT,判断为超内存导致的Docker重启

解决方案

去掉或增加Docker容器内存LIMIT的限制。

1、若采用Docker Compose则修改配置文件

    deploy:resources:limits:memory: 12288M

2、若使用Docker则修改已运行容器的内存限制,使用 docker update 命令来动态调整内存限制。例如,如果您想要将一个已运行的容器的内存限制增加到1GB,可以使用以下命令:
docker update -m 1024m my-container

创建容器时设置内存限制
当您创建一个新的容器时,可以使用 docker run 命令,并配合 -m 或 --memory 参数来设置内存限制。例如,如果您想要创建一个使用512MB内存的Nginx容器,可以使用以下命令:
docker run -m 512m -d --name my-nginx nginx


http://www.ppmy.cn/ops/145522.html

相关文章

docker怎么复制容器的文件到宿主机

在Docker中,你可以使用docker cp命令来复制文件从容器到宿主机,或者从宿主机到容器。以下是如何将文件从容器复制到宿主机的步骤: 确定容器ID或名称:首先,你需要知道你想要复制文件的容器的ID或名称。你可以使用docker…

《手写Mybatis渐进式源码实践》实践笔记(第七章 SQL执行器的创建和使用)

文章目录 第七章 SQL执行器的定义和实现背景技术背景模板模式特点结构示例代码(Java) 业务背景 目标设计实现工程代码类图实现步骤1.执行器的定义和实现1-1. Executor定义执行器接口1-2.BaseExecutor执行器抽象基类1-3. SimpleExecutor 简单执行器实现 2…

冰狐智能辅助使用插件化开发集成三方ocr

插件化开发(Plugin Development)是一种软件开发模式,它将一个应用程序的功能拆分为模块,并允许在运行时动态加载、卸载和扩展这些模块,以增强应用程序的功能。冰狐支持动态加载和卸载第三方插件模块,开发者…

Unity 战斗系统中角色UI血条设计

1:如何选取技术方案 Unity战斗系统中,每个角色经常会有血条与昵称。如何架构设计才高效,我们列举一些常用的做法: onGUI来做昵称与血条;3D世界中创建一个3D物体来做血条与昵称,然后让血条与昵称对着摄像机;基于UGUI/NGUI单独做血条与昵称的UI节点&#…

Chromium GN 目标指南 - view_example 表单示例 (八)

1. 引言 在前面的文章中,我们学习了如何创建计数器示例,了解了如何使用 Label 和 Button 控件进行交互以及更新 UI 状态。在本篇文章中,我们将创建一个更复杂的示例 —— 表单,以学习如何使用 Textfield、Combobox 和 Checkbox 等…

DocFlow票据AI自动化处理工具,提升企业票据数字化管理效能

随着全球化与信息化进程,企业的文件、信息、数据吞吐量不断增长,2020年以来,业务形势的变革再次加速了企业对先进的文档数字化管理解决方案需求。其中,票据处理始终面临着文件量大耗时、单据高度多样化、“淡旺季”周期波动性强、…

极狐GitLab 17.7正式发布,可从 GitLab 丝滑迁移至极狐GitLab【一】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…

面试场景题系列:分布式系统中的唯一ID生成器

1.场景需求需求界定 •ID必须是唯一的。 •ID只包含数字。 •ID长为64位。 •ID按日期排序。 •可以每秒生成超过10,000个唯一ID。 2.高层级的设计 在分布式系统中,有多个方法可以用来生成唯一ID。我们考虑的方法有: •多主复制(Multi…