You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04下Docker Desktop启动后内存占用过高问题咨询

解决Ubuntu 22.04上Docker Desktop内存占用过高的问题

你遇到的问题很典型——Docker Desktop在Linux系统上其实是通过**QEMU虚拟机(基于LinuxKit)**来承载容器环境的,哪怕没有运行任何容器,这个虚拟机也会占用预先配置的内存资源。你看到的qemu-system-x86_64进程里的-m 3849参数就是当前分配给虚拟机的内存(约3.8GB),实际占用略高是因为虚拟机本身有额外的系统开销,但如果远超这个数值,可能是配置或资源残留的问题,以下是具体解决办法:

1. 调整Docker Desktop虚拟机的内存分配

这是最直接的解决方案:

  • 打开Docker Desktop,点击右上角的齿轮图标进入Settings
  • 切换到Resources > Advanced选项卡
  • 找到Memory滑块,根据你的系统剩余内存情况降低分配值(比如从默认的4GB左右调到2GB,如果你日常容器需求不大的话)
  • 点击Apply & Restart,等待Docker Desktop重启生效
  • 生效后,你再查看qemu-system-x86_64的启动命令,-m参数会变成你设置的数值,内存占用也会对应下降

2. 关闭不必要的功能减少资源消耗

  • 同样在Resources设置里,按需降低CPU核心数和Swap的分配(比如CPU从8核调到4核,Swap从1GB调到512MB)
  • 切换到Features in Development,关闭你不需要的实验性功能(比如VirtioFS如果没在使用的话,它会增加一些内存开销)
  • 进入Settings > General,取消勾选“Start Docker Desktop when you log in”,避免开机后闲置时占用内存

3. 清理Docker闲置资源

即使没有运行容器,Docker可能残留了未使用的镜像、卷、缓存等,这些也会间接增加虚拟机的内存负载:

  • 运行以下命令清理所有未使用的资源(注意:会删除未使用的镜像、容器、卷,确认后执行):
    docker system prune -a
    
  • 如果想更精细清理,可以单独执行:
    # 清理悬空镜像(没有标签的镜像)
    docker image prune
    # 清理未挂载的卷
    docker volume prune
    

4. 排查异常内存占用

如果调整后内存占用还是远超设置值,可能是内存泄漏或版本问题:

  • 完全重启Docker Desktop,看内存占用是否回到正常范围
  • 更新Docker Desktop到官方最新版本,很多内存泄漏问题会在新版本中修复
  • 检查系统是否有其他进程(比如你的Firefox进程也占用了2.3%内存)和Docker争抢资源,关闭暂时不需要的应用

内容的提问来源于stack exchange,提问作者Lev Slinsen

火山引擎 最新活动