VSCode Remote Container - Error: ENOSPC: No space left on device

VSCode Remote Container - Error: ENOSPC: No space left on device

我已经使用 VSCode Remote Container Plugin 一段时间了,没有任何问题。但是今天当我试图打开我的项目时,远程容器无法打开并出现以下错误:

Command failed: docker exec -w /home/vscode/.vscode-server/bin/9833dd88 24d0faab /bin/sh -c echo 34503 >.devport
rejected promise not handled within 1 second: Error: ENOSPC: no space left on device, mkdir '/home/vscode/.vscode-server/data/logs/20191209T160810

看起来容器已用完磁盘 space 但我不确定如何添加更多。

经过进一步检查,我有点困惑。当我从容器中 运行 df 时,它显示我已经使用了磁盘 space 的 60G 但我的根目录的大小只有 ~9G

$ df
Filesystem      Size  Used Avail Use% Mounted on
overlay          63G   61G     0 100% /
tmpfs            64M     0   64M   0% /dev
tmpfs           7.4G     0  7.4G   0% /sys/fs/cgroup
shm              64M     0   64M   0% /dev/shm
/dev/sda1        63G   61G     0 100% /etc/hosts
tmpfs           7.4G     0  7.4G   0% /proc/acpi
tmpfs           7.4G     0  7.4G   0% /sys/firmware

$ du -h --max-depth=1 /
9.2G    /

解决此问题的最佳方法是什么?

您系统上的所有 docker 个容器似乎共享同一个磁盘 space。我找到了两个解决方案:

  1. 进入 Docker 桌面设置并增加可用磁盘数量 space。

  2. 运行 docker container prune 以释放磁盘 space 被停止的容器使用。

就我而言,几个月前我有一堆停止的 docker 容器占用了分配给 Docker.

的所有磁盘 space

如果您没有看到任何带有 docker psdocker images 的容器或图像,请尝试 docker system prune --all,但要小心它会删除所有缓存和未使用的容器、图像和网络。 docker ps -adocker images -a 显示所有容器和图像,包括当前未 运行 或未使用的容器和图像。

如果问题仍然存在,请检查文档:Clean unused docker resources