限制 Docker Desktop 的資源使用
限制 Docker Desktop 的資源使用主要分為兩個層面:
- 限制 Docker Desktop 應(yīng)用本身(虛擬機(jī))能使用的最大資源:這是最直接的方法,防止 Docker 把你的電腦(宿主機(jī))跑滿。
- 限制單個容器的資源:在運(yùn)行具體的容器時,通過參數(shù)指定其上限。
以下是針對 Windows/macOS 系統(tǒng)(Docker Desktop 運(yùn)行在虛擬機(jī)中)的具體操作方法。
1. 限制 Docker Desktop 本身(全局資源限制)
這是解決“電腦卡頓”的最有效手段。Docker Desktop 本質(zhì)上是一個輕量級虛擬機(jī)(Linux VM),你需要限制這個虛擬機(jī)能從你的電腦里拿走多少資源。
?? macOS 操作步驟:
- 點(diǎn)擊頂部狀態(tài)欄的 Docker 圖標(biāo) ??。
- 選擇 Settings (設(shè)置) -> Resources (資源)。
- 在左側(cè)菜單選擇 Advanced (高級)。
- 調(diào)整以下參數(shù):
- CPUs:建議設(shè)置為物理核心數(shù)的 50%~75%。例如你的電腦有 8 核,可以給 Docker 分配 4-6 核。
- Memory:建議設(shè)置為總內(nèi)存的 25%~50%。例如 16GB 內(nèi)存的電腦,分配 4GB-8GB 給 Docker。
- Disk image size:設(shè)置虛擬磁盤大?。J(rèn) 64GB,建議根據(jù)硬盤空間適當(dāng)調(diào)整,避免占滿硬盤)。
- 點(diǎn)擊 Apply & Restart 重啟生效。
?? Windows 操作步驟 (WSL2 后端):
Windows 下的資源限制稍微復(fù)雜一點(diǎn),因?yàn)?Docker Desktop 依賴 WSL2。
方法 A:通過 Docker Desktop 設(shè)置 (部分有效)
- Docker 圖標(biāo)右鍵 -> Settings -> Resources -> WSL Integration。
- 雖然這里主要是開關(guān)發(fā)行版,但你可以通過限制 WSL2 的總資源來間接控制。
方法 B:通過 WSL 配置文件 (推薦,更徹底)
由于 Docker Desktop 在 Windows 上依賴 WSL2,你需要創(chuàng)建一個全局的 WSL 配置來限制所有 WSL 發(fā)行版(包括 Docker)的資源。- 在
C:\Users\<你的用戶名>\下創(chuàng)建一個文件:.wslconfig。 - 編輯該文件,添加以下內(nèi)容(根據(jù)你的電腦配置調(diào)整):
[wsl2] # 限制 WSL2 最多使用 4 個 CPU 核心 processors=4 # 限制 WSL2 最多使用 4GB 內(nèi)存 memory=4GB # 限制 Swap 空間 swap=1GB
- 保存后,在 PowerShell 中運(yùn)行
wsl --shutdown,然后重啟 Docker Desktop。
- 在
2. 限制單個容器的資源
如果你希望某個特定的服務(wù)(比如一個數(shù)據(jù)庫容器)不能無限制吃資源,可以在運(yùn)行時指定。
?? 使用命令行 (docker run)
| 資源類型 | 參數(shù) | 說明 | 示例 |
|---|---|---|---|
| 內(nèi)存限制 | -m 或 --memory | 設(shè)置內(nèi)存硬限制 | docker run -m 512m ... (限制為512MB) |
| CPU 限制 | --cpus | 設(shè)置 CPU 核心數(shù)(絕對限制) | docker run --cpus=1.5 ... (限制為1.5核) |
| CPU 權(quán)重 | --cpu-shares | 設(shè)置相對權(quán)重(默認(rèn)1024),僅在資源緊張時生效 | docker run --cpu-shares=512 ... (優(yōu)先級較低) |
| 磁盤IO限制 | --device-read-bps | 限制讀寫速度 | docker run --device-write-bps /dev/sda:1mb ... |
?? 使用 Docker Compose (推薦用于項(xiàng)目)
如果你是用 docker-compose.yml 管理項(xiàng)目,在文件中直接定義資源限制:
version: '3.8'
services:
web:
image: nginx
deploy: # 注意:使用 docker-compose up 時,部分版本需要加 deploy 層級
resources:
limits:
cpus: '1.0' # 最多使用1個CPU核心
memory: 512M # 最多使用512MB內(nèi)存
reservations:
cpus: '0.5' # 預(yù)留資源(軟限制)
memory: 256M
# 如果上面的 deploy 不生效,也可以嘗試直接寫在 service 根層級(取決于compose版本)
# command: ...?? 3. 額外建議:清理與監(jiān)控
- 定期清理:停止的容器和未使用的鏡像會占用磁盤空間,偶爾也會導(dǎo)致守護(hù)進(jìn)程卡頓。定期運(yùn)行:
# 清理所有未使用的容器、網(wǎng)絡(luò)、鏡像和構(gòu)建緩存 docker system prune -a
- 監(jiān)控資源:使用
docker stats命令實(shí)時查看哪個容器正在瘋狂吃資源。
總結(jié)建議:
如果你的電腦經(jīng)??D,首先去 Docker Settings -> Resources 里把內(nèi)存和 CPU 的滑塊調(diào)小一點(diǎn)(例如限制在 4核/4GB),這是最立竿見影的優(yōu)化手段。
到此這篇關(guān)于限制 Docker Desktop 的資源使用的文章就介紹到這了,更多相關(guān)Docker Desktop限制資源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker部署Kafka以及Spring Kafka實(shí)現(xiàn)
這篇文章主要介紹了Docker部署Kafka以及Spring Kafka實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10
Docker創(chuàng)建一個Nginx服務(wù)器的方法步驟
使用Dokcer可以很好的對鏡像進(jìn)行管理,創(chuàng)建和使用容器。這篇文章主要介紹了Docker創(chuàng)建一個Nginx服務(wù)器的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
通過docker?create與export分析診斷故障鏡像
在容器化技術(shù)主導(dǎo)現(xiàn)代應(yīng)用部署的今天,Docker鏡像的可靠性直接影響著系統(tǒng)的穩(wěn)定性,然而,當(dāng)開發(fā)者面對一個無法正常啟動的"問題鏡像"時,傳統(tǒng)的調(diào)試手段往往顯得捉襟見肘,此時,docker?create與docker?export的組合技可以解決這個問題,下面小編給大家詳細(xì)說說2025-04-04
Docker運(yùn)維一鍵排查Shell腳本,6大功能搞定容器90%線上故障
本文介紹了一款自研的Docker一鍵排查Shell腳本,該腳本主要用于Docker容器運(yùn)維,包括容器重啟、端口占用、磁盤使用、網(wǎng)絡(luò)故障、鏡像臃腫、安全權(quán)限等常見問題的排查,感興趣的朋友一起看看吧2024-10-10
服務(wù)器部署docker 運(yùn)行.NET 8 項(xiàng)目的步驟
文章介紹了在阿里云服務(wù)器上部署Docker并運(yùn)行.NET 8項(xiàng)目的步驟,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2026-03-03

