如何在Docker相关开发和非Docker相关开发之间切换?

如何在Docker相关开发和非Docker相关开发之间切换?

这是我原来的问题

在我的 PC 上,我有一个进程“vmmem”,占用了高达 1.6GB 的 RAM,并且经常占用整个 CPU。经过一番调查,基于几个wmic process where (processid=PROCID_HERE) get parentprocessid,我发现这是由一项名为“Hyper-V Host Compute Service”的服务引起的。
我非常天真地停止了该进程(但由于 RAM 没有减少,我决定再次重新启动它),结果出现了新版“蓝屏死机”。显然我不想看到这个屏幕 :-)

我的电脑上有 Docker-Compose(因此有“Hyper-V”服务),但显然停止不同的容器也不会减少 RAM 的使用。

是否有人知道我可以轻松关闭/打开什么以便在 Docker 相关开发(需要 Docker 容器)和其他开发(有足够的备用 RAM)之间切换?

编辑
我的问题是,名为 的进程vmmem占用了大量内存,但我不知道这是如何形成的:我可以想象其中一些来自进程Docker本身,一些来自容器,还有一些来自我在环境中运行的进程Docker,但当我停止容器或进程时,这不会减少内存使用量。有人知道我可以做些什么来减少进程的内存使用量vmmem吗?

提前致谢

答案1

WSL 2 基于使用 Hyper-V 技术运行的轻量级 Linux VM。该vmmem进程是主机 PC 上可见的正在运行的 VM 本身。所有 WSL 2 发行版(包括 Docker Desktop 发行版)都共享同一个 VM。

停止使用 WSL 2 几分钟后,虚拟机将关闭。要立即关闭 WSL(1 和 2),您可以运行wsl --shutdown。这将立即且无需进一步提示终止所有 WSL 进程,以确保 WSL 中没有运行任何关键任务。

请记住,Docker Desktop 应用程序本身将在运行时保持 WSL 2 处于活动状态,即使没有容器正在运行。如果您不需要 Docker,请退出 Docker Desktop。也许还可以禁用登录时自动启动它。


如何使用 Docker 或其他方式进行开发取决于您正在做的事情。

相关内容