我的编程空间,编程开发者的网络收藏夹
学习永远不晚

docker修改容器内存大小的实现方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

docker修改容器内存大小的实现方式

前言

最近在学习公司开发的平台业务,需要将应用部署一遍。我自己电脑内存为16g,开了一台8g内存的centos虚拟机。大部分服务都是部署在docker容器内的,在docker容器部署pulsar的时候竟然发现启动命令没有内存限制,百度了一圈也没找到可以在哪里添加内存限制。只好硬着头皮启动服务,结果电脑那叫一个卡呀,8g的内存占的满满当当的。使用top查看内存占用,发现pulsar服务占用了两三个g的内存,而且别的应用因为内存不够停掉之后,pulsar还会把剩余的内存给占用掉,这nm不是无底洞吗。于是我想了各种办法限制pulsar服务的内存占用。

1.docker内存限制的两种方式

docker内存限制有两种方式:

  • 创建容器时添加-m参数,单位可以是b,k,m,g
  • 如果已经存在容器,修改该容器的hostconfig.json文件

2.方式一:-m参数限制

创建容器时我们可以添加-m参数限制容器的内存占用。单位是b,k,m,b
例如:

docker run -dit --name test -m 400m -p 3306:3306 mysql
#创建mysql的镜像实例,并限制容器占用内存大小为400m

3.方式二:修改hostconfig.json文件限制

hostconfig.hson文件是容器的配置文件,每一个容器都有一个对应的 hostconfig.json配置文件,我们在创建容器时使用的任何参数,都可以在这里配置,功能十分的强劲

1.查找容器对应的hostconfig.json文件

docker ps  #找到要修改的容器id,记住它,后面要根据这个id找文件夹
find / -name hostconfig.json #全局搜索hostconfig.json文件,文件的最后一级目录就是容器id

通过上面的命令,就可以找到容器对应的hostconfig.json文件了。

2.停止docker

在修改hostconfig.json文件前,必须要停止docker,否则修改无效

systemctl stop docker

3.修改hostconfig.json文件

通过vi命令修改配置文件,

找到Memory这一项,修改内存大小。请注意:这里的单位默认为bit。最小内存限制为4m,也就是,4x1024x1024。我这里修改为700mb,也就是700x1024x1024。

修改完成之后保存退出。

4.启动docker

systemctl start docker

5.大功告成,完结撒花

补充:docker 运行指定内存

-m,--memory                  内存限制,格式是数字加单位,单位可以为 b,k,m,g。最小为 4M
--memory-swap                内存+交换分区大小总限制。格式同上。必须必-m设置的大
--memory-reservation         内存的软性限制。格式同上
--oom-kill-disable           是否阻止 OOM killer 杀死容器,默认没设置
--oom-score-adj              容器被 OOM killer 杀死的优先级,范围是[-1000, 1000],默认为 0
--memory-swappiness          用于设置容器的虚拟内存控制行为。值为 0~100 之间的整数
--kernel-memory              核心内存限制。格式同上,最小为 4M

查看事例:

[root@sannian ~]# docker run -d -m 1G --memory-swap 3G -p 9999:80  --restart=always --name gitlab twang2218/gitlab-ce-zh
a3254078a79a084f3f3bed5f4ade3e26c7d86951cd822d95b113227d75b00097
[root@sannian ~]# docker ps
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS                   PORTS                                   NAMES
a3254078a79a        twang2218/gitlab-ce-zh   "/assets/wrapper"   21 minutes ago      Up 2 minutes (healthy)   22/tcp, 443/tcp, 0.0.0.0:9999->80/tcp   gitlab
[root@sannian ~]# docker images
REPOSITORY                                               TAG                 IMAGE ID            CREATED             SIZE
twang2218/gitlab-ce-zh                                   latest              18da462b5ff5        3 months ago        1.61GB
registry-vpc.cn-hangzhou.aliyuncs.com/wenty/jumpserver   latest              055f42f305f5        7 months ago        1.41GB
registry.cn-hangzhou.aliyuncs.com/wenty/jumpserver       latest              055f42f305f5        7 months ago        1.41GB
registry.jumpserver.org/public/jumpserver                1.0.0               055f42f305f5        7 months ago        1.41GB
registry.jumpserver.org/public/jumpserver                latest              055f42f305f5        7 months ago        1.41GB

总结

到此这篇关于docker修改容器内存大小的文章就介绍到这了,更多相关docker修改容器内存大小内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

docker修改容器内存大小的实现方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Win8系统怎么修改虚拟内存大小?Win8系统修改虚拟内存大小的方法

Win8系统怎么修改虚拟内存大小?熟悉win8系统的用户就知道,Win8系统虚拟内存是非常好用的功能,在不添加内存条的情况下,可以增大内存容量。那么Win8系统设置好的虚拟内存怎么修改它的大小呢?下面小编就给大家带来Win8系统修改虚拟内存
2022-06-04

云服务器如何选大小的内存卡格式和内容

对于存储数据的服务器来说,选择合适的内存卡格式和内容非常重要。内存卡格式可以是NVMe或NVMe-PKC等常见的内存卡格式,它们通常是基于闪存技术设计的,可以在云服务器上存储更大的数据集。而内容可以是二进制数据或者文本文件等数据格式,这些数据可以存储在云服务器上的存储空间中,并且可以通过网络访问。选择合适的内存卡格式和
2023-10-27

Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法

本文实例讲述了Android实现获取SD卡总容量,可用大小,机身内存总容量及可用大小的方法。分享给大家供大家参考,具体如下: 可能有的同学不知道系统已经提供了获取获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法,用系统源代码提
2022-06-06

Android编程实现获得内存剩余大小与总大小的方法

本文实例讲述了Android编程实现获得内存剩余大小与总大小的方法。分享给大家供大家参考,具体如下:public class memInfo {// 获得可用的内存public static long getmem_UNUSED(Conte
2022-06-06

快速修改运行中的docker容器端口映射的三种方式

当docker start运行容器后并没有提供一个-p选项或设置,让你修改指定端口映射规则,那么这种情况我们该怎么处理呢?今天教如何修改运行中的docker容器的端口映射,感兴趣的朋友跟随小编一起看看吧
2023-01-15

docker发布sunnyNgrok实现内外网穿透的方法(容器内执行命令)

这篇文章主要介绍了docker上发布sunnyNgrok实现内外网穿透,容器内执行命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-07

android调用C语言实现内存的读取与修改的方法示例

写之前需要准备以下内容android studio 已ROOT安卓设备 GG修改器 打开android studio,创建Native C++ Projectactivity_main.xml
2022-06-06

编程热搜

目录