温馨提示×

ubuntu docker如何清理空间

小樊
53
2026-09-22 14:29:42
栏目: 云计算

在 Ubuntu 上使用 Docker 时,随着镜像、容器、卷和构建缓存的积累,磁盘空间很容易被占满。下面按从安全到彻底的方式,介绍如何清理 Docker 占用的空间。


一、先查看 Docker 占用了多少空间

docker system df

更详细:

docker system df -v

二、最常用、最安全的清理方式(推荐)

1️⃣ 一键清理(未使用的资源)

docker system prune

会删除:

  • 停止的容器
  • 未被任何容器使用的网络
  • 悬空镜像(dangling images)
  • 构建缓存

⚠️ 不会删除:

  • 正在运行的容器
  • 被容器使用的镜像
  • 数据卷(volume)

2️⃣ 彻底清理(包括未使用的镜像和卷)

docker system prune -a

再加上卷(⚠️ 会删数据):

docker system prune -a --volumes

三、按需清理(更精细)

清理容器

docker ps -a
docker rm 容器ID

批量删除已退出的容器:

docker container prune

清理镜像

docker images
docker rmi 镜像ID

删除所有未被使用的镜像:

docker image prune -a

清理网络

docker network prune

清理数据卷(⚠️ 不可逆)

docker volume prune

四、清理 Docker 构建缓存(BuildKit)

docker builder prune

清理全部构建缓存:

docker builder prune -a

五、Ubuntu 系统层面的 Docker 清理

Docker 默认数据目录:

/var/lib/docker

查看占用:

sudo du -sh /var/lib/docker

⚠️ 不要手动删除 /var/lib/docker 里的文件


六、自动化定期清理(可选)

使用 cron 定时清理

sudo crontab -e

添加(每天凌晨清理):

0 3 * * * docker system prune -af --volumes

七、常见坑提醒

  • ✅ prune 不会删正在运行的容器
  • ❌ --volumes 会删数据库数据
  • ✅ CI / 构建服务器建议定期 prune

如果你愿意,可以告诉我:

  • 是 服务器 / 开发机 / CI
  • Docker 占用多少空间
  • 是否使用 docker-compose / BuildKit / 数据库

我可以给你一套更合适的安全清理方案。

0 踩