Docker 限制容器對內(nèi)存的使用詳解
一個 docker host 上會運行若干容器,每個容器都需要 CPU、內(nèi)存和 IO 資源。對于 KVM,VMware 等虛擬化技術(shù),用戶可以控制分配多少 CPU、內(nèi)存資源給每個虛擬機。對于容器,Docker 也提供了類似的機制避免某個容器因占用太多資源而影響其他容器乃至整個 host 的性能。
內(nèi)存限額
與操作系統(tǒng)類似,容器可使用的內(nèi)存包括兩部分:物理內(nèi)存和 swap。 Docker 通過下面兩組參數(shù)來控制容器內(nèi)存的使用量。
1、 -m或--memory:設(shè)置內(nèi)存的使用限額,例如 100M, 2G。
2、 --memory-swap:設(shè)置內(nèi)存+swap的使用限額。
當我們執(zhí)行如下命令:
docker run -m 200M --memory-swap=300M ubuntu
其含義是允許該容器最多使用 200M 的內(nèi)存和 100M 的 swap。默認情況下,上面兩組參數(shù)為 -1,即對容器內(nèi)存和 swap 的使用沒有限制。
下面我們將使用 progrium/stress 鏡像來學(xué)習(xí)如何為容器分配內(nèi)存。該鏡像可用于對容器執(zhí)行壓力測試。執(zhí)行如下命令:
docker run -it -m 200M --memory-swap=300M progrium/stress --vm 1 --vm-bytes 280M
--vm 1:啟動 1 個內(nèi)存工作線程。
--vm-bytes 280M:每個線程分配 280M 內(nèi)存。
運行結(jié)果如下:

因為 280M 在可分配的范圍(300M)內(nèi),所以工作線程能夠正常工作,其過程是:
- 分配 280M 內(nèi)存。
- 釋放 280M 內(nèi)存。
- 再分配 280M 內(nèi)存。
- 再釋放 280M 內(nèi)存。
- 一直循環(huán)......
如果讓工作線程分配的內(nèi)存超過 300M,結(jié)果如下:

分配的內(nèi)存超過限額,stress 線程報錯,容器退出。
如果在啟動容器時只指定-m而不指定--memory-swap,那么--memory-swap默認為-m的兩倍,比如:
docker run -it -m 200M ubuntu
容器最多使用 200M 物理內(nèi)存和 200M swap。
內(nèi)存限額就討論到這里,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
深入理解 Docker 數(shù)據(jù)卷(Data Volume)
本文詳細介紹了Docker數(shù)據(jù)卷(DataVolume)的概念、作用、使用命令、掛載方式以及最佳實踐,數(shù)據(jù)卷是Docker中實現(xiàn)數(shù)據(jù)持久化和共享的關(guān)鍵機制之一,通過本文的學(xué)習(xí),讀者可以更好地掌握數(shù)據(jù)卷的使用方法,從而在容器化應(yīng)用中進行有效的數(shù)據(jù)管理2024-11-11
使用docker-compose,如何調(diào)整JVM參數(shù)
這篇文章主要介紹了使用docker-compose,如何調(diào)整JVM參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
docker安裝prometheus和grafana的詳細過程
prometheus通過各種Exporter采集到監(jiān)控數(shù)據(jù),然后存儲進prometheus中,以供查詢展示,這篇文章主要介紹了docker安裝prometheus和grafana,需要的朋友可以參考下2023-02-02
Linux環(huán)境下使用Docker搭建Jenkins容器的方法步驟
本文主要介紹了Linux環(huán)境下使用Docker搭建Jenkins容器的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
docker images,info,-d等命令報錯的解決方法
最近剛接觸Docker,所以在學(xué)習(xí)的過程中出現(xiàn)了好多的問題,百度上不好找,谷歌的話,樓主不會翻墻。后來通過各方求助和細心研究解決了一些遇到的問題,現(xiàn)在將遇到的問題和解決方法分享給大家,有需要的朋友們可以參考借鑒。2016-11-11

