Docker中的容器資源限制解讀
在 Docker 中,可以通過(guò)多種方式對(duì)容器的資源使用進(jìn)行限制,包括 CPU、內(nèi)存、磁盤(pán) I/O 等。
限制 cpu 資源
運(yùn)行容器時(shí)可以通過(guò)指定以下參數(shù)來(lái)限制容器的 CPU 資源:
--cpuset - cpus:設(shè)置容器可以使用的 CPU 核心。--cpu - shares:設(shè)置容器的 CPU 調(diào)度優(yōu)先級(jí)。
示例:
限制容器只能在主機(jī)的第 0 和第 1 個(gè) CPU 核心上運(yùn)行,并設(shè)置容器的 CPU 調(diào)度權(quán)重為 512,Docker 默認(rèn)的 CPU 股份值是 1024,因此這個(gè)容器在與其他容器競(jìng)爭(zhēng) CPU 時(shí),其優(yōu)先級(jí)相對(duì)較低。
# docker run -itd --name dcoker-cpu01 --cpuset-cpus 0,1 --cpu-shares 512 busybox
限制內(nèi)存資源
運(yùn)行容器時(shí)可以通過(guò)指定以下參數(shù)來(lái)限制容器的內(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啟動(dòng)容器報(bào)錯(cuò):Ports are not available的解決方案
這篇文章主要介紹了Docker啟動(dòng)容器報(bào)錯(cuò):Ports are not available的解決方案,Docker 將容器程序的端口號(hào)映射到宿主機(jī)的端口號(hào),是一個(gè) NAT 過(guò)程,這個(gè)過(guò)程可能會(huì)因?yàn)榕c Windows NAT 服務(wù)沖突而失效,文中有詳細(xì)的解決方案,需要的朋友可以參考下2024-03-03
Docker鏡像管理之docker?pull實(shí)戰(zhàn)及常見(jiàn)問(wèn)題詳解
docker pull是我們經(jīng)常用到的一個(gè)命令,我們使用一些官方鏡像,如MySql、Nginx等都需要用docker pull下載,這篇文章主要介紹了Docker鏡像管理之docker?pull實(shí)戰(zhàn)及常見(jiàn)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2025-09-09
Jenkins+Docker持續(xù)集成的實(shí)現(xiàn)
Jenkins是基于Java開(kāi)發(fā)的一種持續(xù)集成工具,用于監(jiān)控持續(xù)重復(fù)的工作,旨在提供一個(gè)開(kāi)放易用的軟件平臺(tái),使軟件的持續(xù)集成變成可能。本文介紹了Jenkins Docker持續(xù)集成,分享給大家2021-05-05
聊聊docker?單機(jī)部署redis集群的問(wèn)題
這篇文章主要介紹了docker?單機(jī)部署redis集群,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
Docker容器/bin/bash?start.sh無(wú)法找到not?found問(wèn)題解決
最近在學(xué)習(xí)聯(lián)系中遇到一個(gè)問(wèn)題,百度后發(fā)現(xiàn)這個(gè)需求還是挺常見(jiàn)的,所以下面這篇文章主要給大家介紹了關(guān)于Docker容器/bin/bash?start.sh無(wú)法找到not?found問(wèn)題的解決方法,需要的朋友可以參考下2022-08-08

