日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

docker修改容器內存大小的實現方式_docker

作者:東南吳彥祖 ? 更新時間: 2022-11-12 編程語言

前言

最近在學習公司開發的平臺業務,需要將應用部署一遍。我自己電腦內存為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

總結

原文鏈接:https://blog.csdn.net/weixin_45019986/article/details/123844887

欄目分類
最近更新