如何解決對Docker容器內(nèi)存限制警告或未實際限制的問題
解決對Docker容器內(nèi)存限制警告或未實際限制的問題
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
a229353897850843206a76458307a37eaeb3c8e1adf0e58e458b9ed10790cfa8
當試圖在啟動docker容器時使用–memory指令時可能會出現(xiàn)此類警告。
場景
筆者的場景是試圖在一個2G內(nèi)存服務(wù)器上加入RabbitMQ,但是內(nèi)存已所剩無幾。為了防止種種問題,需要進行限制。
一個想法是在啟動容器時使用–memory指令限制其內(nèi)存大小。但啟動成功后筆者收到文章上述警告。
含義
這意味著筆者服務(wù)器的Linux 內(nèi)核當前沒有啟用對 swap 限制的支持,或者 cgroup 沒有正確掛載。而cgroup(Control Group)是 Linux 內(nèi)核中的一個功能,用于限制、控制和監(jiān)視進程組的資源使用,如 CPU、內(nèi)存、磁盤 I/O 等。
cgroup 允許系統(tǒng)管理員將一組進程組織在一起,并為它們分配資源。
如果你沒有正確掛載cgorup,在這種情況下,雖然你指定了 --memory 限制,但無法限制容器的 swap 內(nèi)存使用。
解決方案
步驟 1:更新 GRUB 配置
- 編輯 GRUB 配置文件:
sudo nano /etc/default/grub
- 在
GRUB_CMDLINE_LINUX_DEFAULT行中添加cgroup_enable=memory swapaccount=1:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash cgroup_enable=memory swapaccount=1"
這行將引導加載程序的默認內(nèi)核命令行參數(shù),以下是具體參數(shù)釋義:
quiet: 啟動時禁用大多數(shù)內(nèi)核啟動信息的顯示,使啟動過程更加簡潔。splash: 啟用啟動時顯示圖形啟動畫面(Splash Screen),通常用于顯示啟動時的廠商標志或進度條。cgroup_enable=memory: 啟用內(nèi)核的 cgroup 內(nèi)存子系統(tǒng),允許使用 cgroup 來管理和限制內(nèi)存資源。swapaccount=1: 啟用 swap 賬戶統(tǒng)計。這個參數(shù)使 cgroup 能夠跟蹤和管理交換空間(swap)的使用情況。
- 保存并退出編輯器
步驟 2:更新 GRUB 并重啟
- 更新 GRUB 配置:
sudo update-grub
- 重啟系統(tǒng):
sudo reboot
驗證
通過以下命令檢驗容器是否真的將memory進行了限制。
比如,驗證RabbitMQ的內(nèi)存是否被限制在350mb以內(nèi):
sudo docker stats rabbitmq
得到如下輸出結(jié)果:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
7e38b33cd7f7 rabbitmq 0.16% 135.3MiB / 350MiB 67.65% 1.2kB / 0B 56.9MB / 598kB 29
可以發(fā)現(xiàn)在limit一列中,的確將RabbitMQ的內(nèi)存限制在350mb以內(nèi)。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker找不到鏡像無法成功下載ragflow-main的問題解決辦法
這篇文章主要介紹了docker找不到鏡像無法成功下載ragflow-main的問題解決辦法,文中通過代碼及圖文將解決的辦法介紹的非常詳細,對大家學習或者使用docker具有一定的參考借鑒價值,需要的朋友可以參考下2025-04-04
解決docker安裝完成報:bridge-nf-call-iptables is disabled問題
這篇文章主要介紹了解決docker安裝完成報:bridge-nf-call-iptables is disabled問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Docker Buildx 多平臺鏡像構(gòu)建的項目實踐
本文全面介紹了Docker Buildx多平臺鏡像構(gòu)建技術(shù),從原理到生產(chǎn)實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2026-05-05

