跳转至

Docker 存储空间回收指南

本文聚焦于 Docker 存储空间回收的常见问题与解决方案,旨在帮助用户有效管理和优化 Docker 存储资源。

存储空间回收的必要性

Docker 存储空间占用过高通常由以下原因引起: - 未使用的镜像:构建或拉取的镜像未被使用,占用大量存储空间。 - 停止的容器:已停止但未删除的容器仍然占用存储资源。 - 悬空的卷:未挂载到任何容器的数据卷。 - 缓存和临时文件:Docker 在运行过程中生成的缓存和临时文件。

定期回收存储空间对系统性能至关重要,可以有效避免存储资源浪费,提升系统运行效率。

存储空间回收方法

镜像清理

使用 docker image prune 命令删除未使用的镜像:

# 删除所有未使用的镜像
docker image prune -a

# 删除未使用的镜像,但保留最近使用的镜像
docker image prune

容器清理

通过 docker container prune 清理已停止的容器:

# 删除所有已停止的容器
docker container prune

卷清理

使用 docker volume prune 删除未使用的数据卷:

# 删除所有未使用的数据卷
docker volume prune

系统级清理

结合 docker system prune 一键清理镜像、容器、卷和网络:

# 清理所有未使用的资源(镜像、容器、卷、网络)
docker system prune -a

注意事项与最佳实践

避免误删重要数据

  • 在执行清理操作前,确认数据已备份。
  • 使用 docker ps -adocker images 检查容器和镜像的状态。

自动化清理

  • 通过脚本或定时任务定期执行存储空间回收:
    # 每天凌晨 2 点执行清理
    0 2 * * * docker system prune -f
    

监控存储使用情况

  • 使用 docker system df 实时监控存储资源:
    docker system df
    
    输出示例:
    TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
    Images          10        5         2.5GB     1.2GB (48%)
    Containers      8         3         500MB     300MB (60%)
    Local Volumes   5         2         1GB       700MB (70%)
    Build Cache     0         0         0B        0B