You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode Remote Container报ENOSPC:设备无剩余空间,求解决方案

解决VSCode Remote Container磁盘占用异常启动失败的问题

我之前也碰到过一模一样的情况,df显示磁盘满了但du统计的根目录大小却小很多,这大多是Docker的Overlay2存储驱动相关的问题,咱们一步步来解决:

1. 先清理Docker的冗余资源

这是最常见的解决方法,Docker会积累很多未使用的镜像、容器、卷和缓存,直接用官方的清理命令:

docker system prune -a

这个命令会删除所有未被任何容器使用的镜像、停止的容器、无用的卷和网络,执行前确认你不需要这些资源就行。如果想先看看具体哪里占用了空间,可以先运行:

docker system df  # 查看Docker各组件的空间占用情况
docker images     # 列出所有镜像
docker ps -a      # 列出所有容器(包括已停止的)
docker volume ls  # 列出所有卷

如果有明确不需要的资源,也可以手动删除,比如删除某个镜像:docker rmi <image-id>,删除停止的容器:docker rm <container-id>。

2. 排查容器内的「幽灵文件」

这种情况是文件已经被删除,但还被容器内的某个进程占用,du统计不到但df会算进已用空间里。你可以:

  • 先尝试进入容器(如果还能进去的话):
docker exec -it <你的容器ID> /bin/bash
  • 然后找出那些被删除但仍被占用的文件:
lsof | grep deleted

找到对应的进程后,重启这个进程(或者直接重启容器),这些被占用的文件就会被真正释放,磁盘空间就能回来了。

3. 检查Docker存储目录的磁盘空间

默认Docker的所有数据都存在/var/lib/docker目录下,你先看看这个目录所在的磁盘是不是真的满了:

df -h /var/lib/docker

如果确实是磁盘本身空间不足,有两个办法:

  • 扩容磁盘:根据你用的系统(比如Ubuntu、CentOS)或者云服务器的操作手册,对挂载/var/lib/docker的磁盘进行扩容。
  • 迁移Docker存储目录:把Docker数据迁移到更大的磁盘上:
    1. 先停止Docker服务:
      sudo systemctl stop docker
      
    2. 把原存储目录复制到新位置(比如/mnt/big-disk/docker):
      sudo rsync -aX /var/lib/docker/ /mnt/big-disk/docker/
      
    3. 修改Docker配置文件/etc/docker/daemon.json(如果没有就新建一个),添加存储目录的配置:
      {
        "data-root": "/mnt/big-disk/docker"
      }
      
    4. 启动Docker服务:
      sudo systemctl start docker
      
    5. 确认Docker正常运行后,再删除原目录:
      sudo rm -rf /var/lib/docker
      

4. 针对VSCode Remote Container的额外清理

VSCode的远程服务目录可能积累了大量旧日志和冗余文件,你可以尝试清理:

  • 进入容器后,删除/home/vscode/.vscode-server下的旧版本目录(比如除了当前报错里的9833dd88之外的其他目录),或者直接删除整个.vscode-server目录:
rm -rf /home/vscode/.vscode-server

然后重新启动VSCode的远程容器,它会自动重新部署远程服务文件,只是会丢失一些本地的临时配置,一般不影响使用。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:52:38