Docker中的容器資源限制解讀
在 Docker 中,可以通過多種方式對容器的資源使用進(jìn)行限制,包括 CPU、內(nèi)存、磁盤 I/O 等。
限制 cpu 資源
運(yùn)行容器時(shí)可以通過指定以下參數(shù)來限制容器的 CPU 資源:
--cpuset - cpus:設(shè)置容器可以使用的 CPU 核心。--cpu - shares:設(shè)置容器的 CPU 調(diào)度優(yōu)先級。
示例:
限制容器只能在主機(jī)的第 0 和第 1 個(gè) CPU 核心上運(yùn)行,并設(shè)置容器的 CPU 調(diào)度權(quán)重為 512,Docker 默認(rèn)的 CPU 股份值是 1024,因此這個(gè)容器在與其他容器競爭 CPU 時(shí),其優(yōu)先級相對較低。
# docker run -itd --name dcoker-cpu01 --cpuset-cpus 0,1 --cpu-shares 512 busybox
限制內(nèi)存資源
運(yùn)行容器時(shí)可以通過指定以下參數(shù)來限制容器的內(nèi)存:
--memory限制容器可用的內(nèi)存。
示例:
創(chuàng)建容器名為 busybox1,限制容器只能在主機(jī)的第 2 和第 3 個(gè) CPU 核心上運(yùn)行,限制容器可用的內(nèi)存為 128 MB。
# docker run -itd --name busybox1 --cpuset-cpus 2,3 --memory 128m busybox
驗(yàn)證:
查看容器 busybox1運(yùn)行在哪些 cpu核上,內(nèi)存限制為多少.
# docker inspect --format '{{.State.Pid}}' busybox1 # 獲取容器的pid
24493
# cat /proc/24493/status | grep Cpu # 查看該pid進(jìn)程的狀態(tài)信息
Cpus_allowed: c
Cpus_allowed_list: 2-3
# docker inspect busybox1 | grep -e "Memory" # 查看容器內(nèi)存(單位為字節(jié))
"Memory": 134217728,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 268435456,
"MemorySwappiness": null,
# 如上容器 busybox1 如預(yù)期運(yùn)行在第2、3個(gè)cpu核上, 內(nèi)存資源限制為 128MiB總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker重啟會創(chuàng)建幽靈網(wǎng)橋的問題
刪除網(wǎng)卡后路由異常,tracepath顯示網(wǎng)絡(luò)未離服務(wù)器,重啟導(dǎo)致IP沖突無法連接,通過AI工具找到全新解決方案,成功修復(fù),總結(jié)個(gè)人經(jīng)驗(yàn)供參考2025-08-08
Docker環(huán)境下Redis Lua腳本部署與執(zhí)行方式
這篇文章主要介紹了Docker環(huán)境下Redis Lua腳本部署與執(zhí)行方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2026-03-03
基于Docker搭建Redis一主兩從三哨兵的實(shí)現(xiàn)
這篇文章主要介紹了基于Docker搭建Redis一主兩從三哨兵的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

