首页 > 其他分享 >docker资源限制配置

docker资源限制配置

时间:2024-06-21 08:58:39浏览次数:14  
标签:限制 -- app 配置 jar 内存 docker

内存限制

-m,限制内存大小。 eg:
-m 2048m

cpu限制

--cpus,限制cpu相对个数。eg:
--cpus=1.5

docker-compose

version: '3.7'
services:
  my-service:
    image: my-app:tag
	environment:
	  JAVA_OPTS: "-server -XX:+UseContainerSupport"
    deploy:
      resources:
         limits:
            cpus: "2.0"
            memory: "2048M"

启动时需要加上--compatibility参数:
docker-compose --compatibility up -d

JVM

施加了内存限制的docker容器不适合使用-Xmx限制堆内存,原因是JVM的内存不只有堆内存,限制多少不好估算,不限制又仅能使用容器内存的1/4.
正确的配置方式如下:

  • jdk1.8
    -XX:+UseCGroupMemoryLimitForHeap
  • jdk11以上
    -XX:+UseContainerSupport

应用Dockerfile修改

启动java进程时读取环境变量JAVA_OPTS以获取自定义jvm参数:

FROM openjdk:17
COPY build/libs/app.jar /app.jar
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /app.jar"]

标签:限制,--,app,配置,jar,内存,docker
From: https://www.cnblogs.com/cheap-cabbage/p/18259876

相关文章

  • windows/linux下JDK安装配置教程
    JDK安装配置教程前言一、jdk下载1.本人资源下载2.官网下载2.1进入java下载页2.2选择版本并下载二、windows1.解压版(最简单、快捷)1.1版本信息1.2解压1.3完成2.安装版2.1版本信息2.2开始安装2.3安装完成三、Linux1.解压版(最简单、快捷)1.1版本信息1.2......
  • dockerfile 指令 ADD 和 COPY 的区别
     Dockerfile中的ADD和COPY指令都用于将文件或目录从构建上下文复制到Docker镜像中,但它们之间存在一些关键差异: 基本复制功能:COPY:纯粹地将从构建上下文(即执行dockerbuild命令时指定的目录及其子目录)中的文件或目录复制到镜像中指定的路径。ADD:除了具......
  • MySQl配置环境变量
    配置环境变量(a)添加一个系统变量,变量名:CATALINA-HOME,变量值:MySql在自己电脑当中的安装路径,注意:5.7版本需要配置的路径是MySQL.Sever5.7的文件夹路径。 (b)在Path变量的结尾添加一个英文分号,之后把上面添加的路径导入进去(%CATALINA-HOME%)在这个结尾处添加\bin.......
  • linux配置reids集群,一直wait......(解决办法)
    如果一直wait…[root@localhostmyredis]#systemctlstartfirewalld[root@localhostmyredis]#firewall-cmd--staterunning[root@localhostmyredis]#firewall-cmd--zone=public--add-port=16379/tcp--permanentsuccess[root@localhostmyredis]#systemctlr......
  • 青龙面板京东配置详细教程
    本篇文章是基于雨云服务器进行搭建的为什么选择雨云服务器而不是家用电脑呢?因为相较于家用电脑,使用服务器的成本更低并且更稳定如果你还没有注册雨云账号,可以通过以下链接进行注册,或者注册时填写优惠码mianfei,注册后有五折优惠,还有免费服务器使用注册链接:雨云-新一代云服......
  • 高版本SpringCloud配置跨域
    一、什么是跨域跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。同源策略,指的是协议,域名,端口都要相同,其中有一个不同都会产生跨域。跨域相关含义:Access-Control-Allow-Origin:服务器允许请求的源;Access-Con......
  • docker安装部署mysql
    1.查询mysqldockersearchmysql2.安装mysqldockerpullmysql3.创建挂载目录mkdir-p/tmp/mysql/datamkdir-p/tmp/mysql/conf4.上传hmy.cnf到conf目录[mysqld]skip-name-resolve#设置3306端口port=3306#设置mysql的安装目录datadir=/var/lib/mysql#允......
  • Android AOSP Ubuntu 开发环境配置
    在下载和构建Android源代码的 main 分支之前,请确保您的硬件满足必要的要求,并已正确安装所需的软件。您还应熟悉以下术语:GitGit是一个免费的开源分布式版本控制系统。Android使用Git执行本地操作,例如建立分支、提交、对比差异、修改。如需Git学习帮助,请参阅 Git文......
  • nodejs Sequelize6连接mysql8的配置怎么写
    官方文档的构造器很多,这里仅展示一种const{Sequelize}=require('sequelize');/** *dbname *username *password *options */constsequelize=newSequelize('dbname','username','password',{  host:'127.0.0.1&......
  • SAdb项目第二章-PySide6&&designer基础配置及应用
    接上文,本章来说说designer如何使用,并且如何转换成py文件打开designer控制台输入pyside6-designer就能打开创建一个Widget窗口打开后会自动弹出新建窗体选择Widget创建即可。也可以通过左上角的文件新建一个:designer简介desinger中的控件区域有各种控件......