大约一个月前,我在 VMware ESXi 8.0U2 虚拟机(最新 vSphere 版本)上的 Debian 12 上安装了最新版本的 Docker。
我试图让 VNC 运行,但其他优先事项占据了上风,所以现在我只是使用 Gnome 通过 VMware 远程控制台访问 VM。
它安装了最新版本的 VMware Tools:
$ sudo apt-get install open-vm-tools open-vm-tools-desktop
open-vm-tools is already the newest version (2:12.2.0-1+deb12u2).
open-vm-tools-desktop is already the newest version (2:12.2.0-1+deb12u2).
同一时间只有一个容器在运行。我经常docker image prune -f
这样做docker system prune
每当 VM“自行”运行时(无需我通过 Gnome 上的远程控制台连接到它),它就会运行得非常好,并且从不出现故障。
每当我访问虚拟机并执行操作时,它都会随机挂起,我的“修复”方法是重新启动虚拟机。在挂起期间尝试从另一台计算机访问容器上运行的 nginx 服务器会导致我们的反向代理返回Error 503 Service Unavailable - No server is available to handle this request
。
当 Debian Docker 主机虚拟机执行此操作时,它会完全锁定,不让我单击/键入,并且屏幕会冻结。我没有做任何过于苛刻的事情。我通常只是在nano
终端中编辑文件或类似的东西。
有时我在虚拟机上什么都没做,只是通过 VMware 远程控制台连接到它 - 然后它就会关闭。它会以随机间隔执行此操作,但通常会在崩溃前大约一两个小时执行一次,但这似乎是随机变化的,有时会持续几个小时 - 但最近在崩溃前我得到的时间更少了。
如果我等待并且不重新启动虚拟机,则远程控制台最终会在 5-10 分钟后恢复运行,屏幕解冻,我可以再次输入。Docker 守护进程死亡。我没有使用 Docker Deskop。它已安装但未设置为在启动/登录时自动启动。
有时崩溃时没有容器在运行。我在那里使用的容器是一个非常简单的网络服务器,只有我能访问。
有时(但并非总是),即使在虚拟机挂起时从 VMware 远程控制台向虚拟机发出重新启动命令,第一次也不会起作用(但通常第二次会起作用):
在 vSphere 中,当虚拟机挂起时,我有时会看到CPU 使用率持续 100%!我已将 CPU 核心从 4 个减少到 2 个,因为这会导致配备 6c 12t Xeon E5-1650V3 的 VMware 主机服务器的 CPU 消耗非常高。该虚拟机有 8GB RAM。
我的任何其他(Linux、FreeBSD 和 Windows)非 Docker VM 都没有问题。
请问我应该从哪里开始尝试解决此问题?
我的感觉是,这要么与 VMware Tools 有关,要么与 Gnome 有关。每当我运行 Dockerfile 构建时(但有时也什么也不做),我注意到这些进程通常会消耗非常高的 CPU:
qemu-system-x86_64
gnome-shell
docker-scout
com.docker.backend
通常,构建将成功完成,但这些进程在一段时间内仍会占用大量 CPU然后- 有时会导致崩溃(当没有任何东西再构建时)。
我并不反对在全新安装的 Debian 上尝试一些东西,但如果我没有对设置进行任何其他更改,我不确定这是否会有所帮助。
答案1
原帖在此。
我们的设置是:物理机运行 ESXi > 有一个用于 Debian/Docker 的 VM > 有一个用于 nginx 的容器。
我原本误会了@GeraldSchneider 的评论- 我以为他想卸载 Gnome 桌面(也许他也是这么想的),但实际上他正在卸载Docker现在回想起来,桌面已经完全有意义了。
感谢@AB 的评论指出:
- 存在两种不同的安装选项:Docker 桌面+Docker 引擎
- 与 Docker Engine 不同,Docker Desktop 通过 Debian VM 内的 QEMU 在 VM 内部运行,从而导致嵌套虚拟化 - 这会导致主机 VM 频繁崩溃!
我放弃了原来的安装并按照以下指南从头开始重新安装了 Debian:
- Docker 文档 > 在 Debian 上安装 Docker Engine
- Docker 文档 > Linux 安装后
- 具体来说,配置默认日志驱动程序
我也切换到了 KDE,因为 Docker Desktop 不再需要 Gnome 相关的东西。只有时间才能证明,但它的响应时间似乎快了很多,而且没有崩溃(目前)!