Docker Desktop Vmmem內(nèi)存占用過高問題及完美解決方案
Docker Desktop Vmmem內(nèi)存占用過高問題解決方案
內(nèi)存占用過高原因
主要原因是docker desktop的實(shí)現(xiàn)及基于wsl(Windows子系統(tǒng)),相當(dāng)于在Windows上同時(shí)開了一個(gè)虛擬機(jī),如果不對wsl的資源進(jìn)行限制,它將會極大的獲取系統(tǒng)資源.所以我們只需要對wsl的最大資源進(jìn)行限制即可
解決方案
修改wsl配置文件
具體配置:
# Settings apply across all Linux distros running on WSL 2 [wsl2] # Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB memory=4GB # Sets the VM to use two virtual processors processors=2 # Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel kernel=C:\\temp\\myCustomKernel # Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6 kernelCommandLine = vsyscall=emulate # Sets amount of swap storage space to 8GB, default is 25% of available RAM swap=8GB # Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx swapfile=C:\\temp\\wsl-swap.vhdx # Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free pageReporting=false # Turn off default connection to bind WSL 2 localhost to Windows localhost localhostforwarding=true # Disables nested virtualization nestedVirtualization=false # Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging debugConsole=true
在用戶目錄創(chuàng)建個(gè).wslconfig文件,即C:\Users\<UserName>\.wslconfig
創(chuàng)建完成后將配置文件內(nèi)容粘貼進(jìn)去
[wsl2] #配置wsl的核心數(shù) processors=2 #配置wsl的內(nèi)存最大值 memory=512MB #配置交換內(nèi)存大小,默認(rèn)是電腦內(nèi)存的1/4 swap=8GB #關(guān)閉默認(rèn)連接以將 WSL 2 本地主機(jī)綁定到 Windows 本地主機(jī) localhostForwarding=true #設(shè)置臨時(shí)文件位置, 默認(rèn) %USERPROFILE%\AppData\Local\Temp\swap.vhdx swapfile=D:\\temp\\wsl-swap.vhdx
保存后以管理員打開powershell,執(zhí)行如下語句關(guān)閉wsl:
wsl --shutdown
重啟docker desktop即可
后續(xù)問題(缺點(diǎn))
如果內(nèi)存設(shè)置的太小了,后續(xù)可能會出現(xiàn)docker desktop 運(yùn)行一段時(shí)間退出,或者容器會突然停止工作
所以我們的memory=512MB
要根據(jù)自己啟動(dòng)的容器所占內(nèi)存大小稍大一點(diǎn)即可,但是如果是后續(xù)需要增加容器需要自己手動(dòng)再次擴(kuò)大memory
到此這篇關(guān)于Docker Desktop Vmmem內(nèi)存占用過高問題解決方案的文章就介紹到這了,更多相關(guān)Docker Desktop Vmmem內(nèi)存占用過高內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker鏡像構(gòu)建Go應(yīng)用的實(shí)現(xiàn)方法
本文主要介紹了使用Docker鏡像構(gòu)建Go應(yīng)用的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03docker實(shí)現(xiàn)MySQL主從雙備的示例代碼
本文主要介紹了docker實(shí)現(xiàn)MySQL主從雙備,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01Docker network自定義網(wǎng)絡(luò)方式
這篇文章主要介紹了Docker network自定義網(wǎng)絡(luò)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05如何在 Ubuntu 下通過 Docker 部署 Caddy 
本文介紹了如何在Ubuntu系統(tǒng)下通過Docker部署Caddy服務(wù)器,首先安裝Docker,然后啟動(dòng)Docker服務(wù)并設(shè)置為開機(jī)自啟,接著拉取Caddy鏡像,并創(chuàng)建一個(gè)Caddyfile配置文件,使用命令運(yùn)行Caddy容器,并將本地的Caddyfile掛載到容器內(nèi),感興趣的朋友跟隨小編一起看看吧2025-03-03在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法
本篇文章主要介紹了在 docker 之間導(dǎo)出導(dǎo)入鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07