docker修改容器內(nèi)存大小的實(shí)現(xiàn)方式
前言
最近在學(xué)習(xí)公司開(kāi)發(fā)的平臺(tái)業(yè)務(wù),需要將應(yīng)用部署一遍。我自己電腦內(nèi)存為16g,開(kāi)了一臺(tái)8g內(nèi)存的centos虛擬機(jī)。大部分服務(wù)都是部署在docker容器內(nèi)的,在docker容器部署pulsar的時(shí)候竟然發(fā)現(xiàn)啟動(dòng)命令沒(méi)有內(nèi)存限制,百度了一圈也沒(méi)找到可以在哪里添加內(nèi)存限制。只好硬著頭皮啟動(dòng)服務(wù),結(jié)果電腦那叫一個(gè)卡呀,8g的內(nèi)存占的滿滿當(dāng)當(dāng)?shù)?。使用top查看內(nèi)存占用,發(fā)現(xiàn)pulsar服務(wù)占用了兩三個(gè)g的內(nèi)存,而且別的應(yīng)用因?yàn)閮?nèi)存不夠停掉之后,pulsar還會(huì)把剩余的內(nèi)存給占用掉,這nm不是無(wú)底洞嗎。于是我想了各種辦法限制pulsar服務(wù)的內(nèi)存占用。
1.docker內(nèi)存限制的兩種方式
docker內(nèi)存限制有兩種方式:
- 創(chuàng)建容器時(shí)添加-m參數(shù),單位可以是b,k,m,g
- 如果已經(jīng)存在容器,修改該容器的hostconfig.json文件
2.方式一:-m參數(shù)限制
創(chuàng)建容器時(shí)我們可以添加-m參數(shù)限制容器的內(nèi)存占用。單位是b,k,m,b
例如:
docker run -dit --name test -m 400m -p 3306:3306 mysql #創(chuàng)建mysql的鏡像實(shí)例,并限制容器占用內(nèi)存大小為400m
3.方式二:修改hostconfig.json文件限制
hostconfig.hson
文件是容器的配置文件,每一個(gè)容器都有一個(gè)對(duì)應(yīng)的 hostconfig.json
配置文件,我們?cè)趧?chuàng)建容器時(shí)使用的任何參數(shù),都可以在這里配置,功能十分的強(qiáng)勁
1.查找容器對(duì)應(yīng)的hostconfig.json文件
docker ps #找到要修改的容器id,記住它,后面要根據(jù)這個(gè)id找文件夾 find / -name hostconfig.json #全局搜索hostconfig.json文件,文件的最后一級(jí)目錄就是容器id
通過(guò)上面的命令,就可以找到容器對(duì)應(yīng)的hostconfig.json文件了。
2.停止docker
在修改hostconfig.json
文件前,必須要停止docker,否則修改無(wú)效
systemctl stop docker
3.修改hostconfig.json文件
通過(guò)vi命令修改配置文件,
找到Memory
這一項(xiàng),修改內(nèi)存大小。請(qǐng)注意:這里的單位默認(rèn)為bit。最小內(nèi)存限制為4m,也就是,4x1024x1024。我這里修改為700mb,也就是700x1024x1024。
修改完成之后保存退出。
4.啟動(dòng)docker
systemctl start docker
5.大功告成,完結(jié)撒花
補(bǔ)充:docker 運(yùn)行指定內(nèi)存
-m,--memory 內(nèi)存限制,格式是數(shù)字加單位,單位可以為 b,k,m,g。最小為 4M --memory-swap 內(nèi)存+交換分區(qū)大小總限制。格式同上。必須必-m設(shè)置的大 --memory-reservation 內(nèi)存的軟性限制。格式同上 --oom-kill-disable 是否阻止 OOM killer 殺死容器,默認(rèn)沒(méi)設(shè)置 --oom-score-adj 容器被 OOM killer 殺死的優(yōu)先級(jí),范圍是[-1000, 1000],默認(rèn)為 0 --memory-swappiness 用于設(shè)置容器的虛擬內(nèi)存控制行為。值為 0~100 之間的整數(shù) --kernel-memory 核心內(nèi)存限制。格式同上,最小為 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
總結(jié)
到此這篇關(guān)于docker修改容器內(nèi)存大小的文章就介紹到這了,更多相關(guān)docker修改容器內(nèi)存大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入)
這篇文章主要介紹了ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06docker容器內(nèi)要啟動(dòng)兩個(gè)進(jìn)程時(shí)Dockerfile的實(shí)現(xiàn)代碼
這篇文章主要介紹了docker容器內(nèi)要啟動(dòng)兩個(gè)進(jìn)程時(shí)Dockerfile的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11手把手帶大家通過(guò)Docker部署前后端分離項(xiàng)目(親測(cè)可用)
近年來(lái)前后端分離已經(jīng)成為中大型軟件項(xiàng)目開(kāi)發(fā)的最佳實(shí)踐,下面這篇文章主要給大家介紹了關(guān)于通過(guò)Docker部署前后端分離項(xiàng)目的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Docker部署Microsoft Sql Server詳細(xì)步驟
大家好,本篇文章主要講的是Docker部署Microsoft Sql Server詳細(xì)步驟,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12綁定Dokcer容器到主機(jī)指定網(wǎng)卡的方法
這篇文章主要介紹了綁定 Dokcer 容器到主機(jī)指定網(wǎng)卡的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Docker+keepalived+nginx實(shí)現(xiàn)主從熱備的方法示例
這篇文章主要介紹了Docker+keepalived+nginx實(shí)現(xiàn)主從熱備的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11