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

查看事例:

[[email protected] ~]# docker run -d -m 1G --memory-swap 3G -p 9999:80 --restart=always --name gitlab twang2218/gitlab-ce-zh
a3254078a79a084f3f3bed5f4ade3e26c7d86951cd822d95b113227d75b00097
[[email protected] ~]# 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
[[email protected] ~]# 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

補充:docker run -m指定內存大小不生效

執行docker run的時候,想要指定一下內存大小,用瞭-m參數

報錯如下

#docker run -id -m 3g -p 7001:7001 197.3.16.51/sysmgr/mywebapptest_app_weblogic:20180820047 WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. 52380a4896f3f916cd0f95f97e233b30d9406840e10c0c53484b3be9000d0321

然後發現雖然我設置堆大小為5G,容器還是創建出來瞭,3g的限制並沒有生效。

查閱資料發現這個報錯是因為宿主機內核的相關功能沒有打開。

解決方案

按照下面的設置就行

step 1:

編輯/etc/default/grub文件,將GRUB_CMDLINE_LINUX一行改為

GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"

step 2:

更新 GRUB,即執行$ sudo update-grub

step 3:

重啟系統。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。