当你在 Docker 中删除了文件但磁盘空间仍显示 100% 占用时,这通常是由于 Docker 的存储驱动机制导致的。以下是可能的原因和解决方案:
未清理的容器层:Docker 使用分层文件系统,删除文件只是在最上层添加一个"删除标记",实际数据仍在底层存在
悬空镜像和容器:已停止但未删除的容器和未使用的镜像仍占用空间
日志文件过大:容器产生的日志文件可能持续增长
卷(volume)未被清理:数据卷可能仍然保留着已删除的数据
# 删除所有已停止的容器
docker container prune
# 删除悬空镜像
docker image prune
# 删除所有未使用的镜像、容器、网络和卷(谨慎使用)
docker system prune -a --volumes
# 查看容器日志大小
docker ps -s
# 清理特定容器日志(先停止容器)
docker stop <container_id>
truncate -s 0 /var/lib/docker/containers/<container_id>/*-json.log
docker start <container_id>
在 /etc/docker/daemon.json
中添加日志大小限制:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
然后重启 Docker 服务:systemctl restart docker
# 列出所有卷
docker volume ls
# 删除未使用的卷
docker volume prune
# 查看 Docker 磁盘使用详情
docker system df -v
如果问题仍然存在,可能需要重建 Docker 存储(这将删除所有 Docker 数据):
systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker
docker system prune
清理无用资源--rm
标志运行临时容器希望这些解决方案能帮助你释放 Docker 占用的磁盘空间。