插件窝 干货文章 docker存储空间不足怎么办

docker存储空间不足怎么办

Docker 存储 使用 清理 56    来源:    2025-05-02

Docker存储空间不足解决方案

当Docker存储空间不足时,可以采取以下方法解决:

1. 清理无用资源

# 清理停止的容器、未使用的网络、悬空镜像和构建缓存
docker system prune

# 彻底清理所有未使用的镜像(包括未被容器引用的)
docker system prune -a

2. 检查并管理Docker磁盘使用

# 查看Docker磁盘使用情况
docker system df

# 查看详细的空间占用情况
docker system df -v

3. 清理特定资源

# 删除所有悬空镜像
docker image prune

# 删除超过24小时的容器
docker container prune --filter "until=24h"

# 删除未使用的卷
docker volume prune

4. 调整Docker存储驱动配置

编辑/etc/docker/daemon.json文件(如不存在则创建):

{
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}

然后重启Docker服务:

sudo systemctl restart docker

5. 扩大Docker存储空间

对于devicemapper存储驱动(较旧版本):

# 停止Docker服务
sudo systemctl stop docker

# 调整存储池大小
sudo lvresize --size 100G /dev/mapper/docker-thinpool

# 检查文件系统并调整大小
sudo xfs_growfs /var/lib/docker

# 启动Docker服务
sudo systemctl start docker

对于overlay2存储驱动(推荐):

考虑将Docker数据目录迁移到更大的磁盘分区:

  1. 停止Docker服务
  2. 复制数据到新位置
  3. 修改Docker配置指向新位置
  4. 重启Docker服务

6. 设置自动清理策略

/etc/docker/daemon.json中添加:

{
  "features": {
    "buildkit": true
  },
  "builder": {
    "gc": {
      "enabled": true,
      "defaultKeepStorage": "20GB"
    }
  }
}

7. 长期解决方案

  • 考虑使用外部存储卷映射重要数据
  • 定期监控Docker磁盘使用情况
  • 对于生产环境,考虑使用专门的存储解决方案
  • 升级到使用overlay2存储驱动(性能更好)

执行这些操作前,请确保备份重要数据,特别是在修改存储配置时。