VSCode 远程容器 - 错误:ENOSPC:设备没有剩余空间

8

我一直在使用VSCode Remote Container插件,没有遇到任何问题。但是今天当我尝试打开我的项目时,远程容器无法打开,出现以下错误:

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

看起来容器的磁盘空间已用尽,但我不确定如何添加更多。

进一步检查后,我有点困惑。当我在容器中运行df时,它显示我已使用了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 info,好吗?猜测一下:所有的 Docker 镜像(包括旧的和未使用的)都存储在 / 的某个地方,所以你应该清理它们:docker system prune - Jan Garaj
请问执行 docker info 命令的输出结果是什么?默认容器根文件系统大小仅为10GB(devicemapper),因此看到存储驱动程序的配置方式会很有趣(它似乎是overlay)。 - Jan Garaj
@JanGaraj 我添加了Docker信息输出。 - Increasingly Idiotic
你能否检查一下 /var/lib/docker 所在的卷的磁盘空间? - Jan Garaj
@JanGaraj 我该怎么找到它?/var/lib/docker不在我的系统上。 - Increasingly Idiotic
显示剩余3条评论
2个回答

10

如果使用docker psdocker images命令没有看到任何容器或镜像,可以尝试使用docker system prune --all命令清除所有缓存和未使用的容器、镜像和网络,但请注意谨慎操作。

docker ps -adocker images -a命令会显示所有容器和镜像,包括当前未运行或未使用的。

如果问题仍然存在,请查看文档:清理未使用的 Docker 资源


3

看起来你系统上所有的docker容器共享同一块磁盘空间。我找到了两个解决方案:

  1. 进入Docker Desktop设置并增加可用磁盘空间的数量。

  2. 运行docker container prune 删除停止的容器使用的磁盘空间。

在我的情况下,我有很多从几个月前就停止的Docker容器,它们占用了分配给Docker的所有磁盘空间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接