1. 程式人生 > 其它 >解決docker警告WARNING: No swap limit support

解決docker警告WARNING: No swap limit support

0x01 前言

docker可以通過啟動命令來限制容器可以使用的最大實體記憶體和swap,但是通常在使用這些命令的時候經常會碰到“WARNING: No swap limit support”警告,大概意思就是不支援swap記憶體的限制,所以在使用,在國內的騰訊雲和阿里雲伺服器上測試都是報這個警告的。雖然網上有給出的解決方案,但是照做的時候會有坑,修改錯了會導致伺服器外網消失,下面介紹正確的解決方案。
0x02 限制docker容器最大記憶體使用量

引數:-m 64M --memory-swap=128M

-m 64M 限制了容器執行可以使用的最大實體記憶體為64M,--memory-swap=128M限制容器可以使用的最大虛擬記憶體為128M,在出現WARNING: No swap limit support警告時這兩個引數是無效的。
0x03 解決方法

編輯/etc/default/grub檔案。

vim /etc/default/grub
  1. 找到GRUB_CMDLINE_LINUX=配置項,並追加“cgroup_enable=memory swapaccount=1”。
    注意

如果GRUB_CMDLINE_LINUX=內有內容,切記不可刪除,只需在後面追加cgroup_enable=memory swapaccount=1並用空格和前面的內容分隔開。

比如我的配置如下:
GRUB_CMDLINE_LINUX="net.ifnames=0 console=tty0 console=ttyS0,115200n8 cgroup_enable=memory swapaccount=1"
1

GRUB_CMDLINE_LINUX="net.ifnames=0 console=tty0 console=ttyS0,115200n8 cgroup_enable=memory swapaccount=1"

  1. 儲存檔案並執行一下命令:
    sudo update-grub
    1

sudo update-grub

  1. 重啟伺服器
    reboot
    1

reboot

0x04 結束語

以上方案在ubuntu系列作業系統測試通過,其他系統版本未測試。

https://www.k2zone.cn/?p=2356