linux rancher 清理docker容器磁盘空间

简介: linux rancher 清理docker容器磁盘空间

目录说明

/var/lib/docker/containers: 是 Docker 在 Linux 系统上默认存储容器信息的目录。在该目录下,每个运行的 Docker 容器都有一个单独的目录,以容器 ID 命名,其中包含有关该容器的元数据和日志文件。


具体来说,每个容器目录中通常包括以下文件和目录:


config.v2.json:包含该容器的配置信息,如运行时环境、挂载点等

hostname:该容器的主机名。

hosts:该容器的 hosts 文件。

resolv.conf:该容器的 DNS 配置文件。

log.*.json:该容器的日志文件。Docker 通过在主机上安装的日志驱动程序将容器的标准输出和标准错误输出写入这些文件中。

注意,Docker 默认情况下会保留容器的日志文件,即使容器已经停止或删除。这可能会占用大量磁盘空间,因此您可能需要定期清理这些日志文件,以便释放磁盘空间。可以使用 sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log 命令清空日志文件,或者使用工具如 logrotate 定期轮换和清理日志文件。


/var/lib/docker/overlay2:目录下存储着 Docker 容器的数据,包括容器文件系统的镜像和运行时数据。这个目录的日志通常存储在容器的日志文件中,而不是直接存储在该目录中。


如果您想要清理该目录中的数据,需要注意以下几点:


1.不要直接删除该目录中的文件,否则可能会导致容器无法正常运行。

2.在清理之前,应该先停止所有正在运行的 Docker 容器,以确保容器的数据已经写入磁盘并保存。

3.清理的时候应该小心谨慎,避免误删数据。

对于日志的清理,可以使用 Docker 自带的 docker system prune 命令来清理不再使用的镜像、容器、网络等资源,以及其它无用数据,包括一些旧的日志文件。


具体地,可以使用以下命令清理 Docker 中的无用数据,包括旧的日志文件:

sudo docker system prune --all --force --volumes


该命令会删除所有未被使用的镜像、容器、网络和卷,并且强制删除,包括卷数据和所有关联的日志文件。


需要注意的是,该命令会删除所有未使用的 Docker 资源,包括一些可能还有用的数据,因此在使用该命令时应该慎重考虑。如果您不确定是否要删除某些数据,可以先备份数据,然后再进行清理操作。


清理

查看docker 占用的


空间命令

docker system df


df694f5525f44dd285921be7cbc81ec2.png


TYPE 列出了docker 使用磁盘的 4 种类型:


Images:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。

Containers:运行的容器占用的空间,表示每个容器的读写层的空间。

Local Volumes:容器挂载本地数据卷的空间。

Build Cache:镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)。

最后的 RECLAIMABLE 是可回收大小。


一键清理无用空间

docker system prune


c001b05cf74d43b0a7e4a3e97ba06d35.png


清理docker日志,日志文件无法删除,我们对json文件内容进行赋空


1.进入/var/lib/docker/containers目录

2.执行du -ha命令查看当前目录占用空间大小

3.删除命令sudo truncate -s 0 /var/lib/docker/containers/*/*-json.log,这个命令会将 Docker 容器的所有日志文件截断为零字节,即清空日志文件,但不会删除这些文件。


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
5天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker和Kubernetes入门
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术成为企业提升敏捷性和效率的关键。本篇文章将引导读者了解如何利用Docker进行容器化打包及部署,以及Kubernetes集群管理的基础操作,帮助初学者快速入门云原生的世界。通过实际案例分析,我们将深入探讨这些技术在现代IT架构中的应用与影响。
23 2
|
3天前
|
运维 Cloud Native 虚拟化
一文吃透云原生 Docker 容器,建议收藏!
本文深入解析云原生Docker容器技术,涵盖容器与Docker的概念、优势、架构设计及应用场景等,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
一文吃透云原生 Docker 容器,建议收藏!
|
4天前
|
缓存 监控 开发者
掌握Docker容器化技术:提升开发效率的利器
在现代软件开发中,Docker容器化技术成为提升开发效率和应用部署灵活性的重要工具。本文介绍Docker的基本概念,并分享Dockerfile最佳实践、容器网络配置、环境变量和秘密管理、容器监控与日志管理、Docker Compose以及CI/CD集成等技巧,帮助开发者更高效地利用Docker。
|
5天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
5天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
5天前
|
安全 持续交付 Docker
微服务架构和 Docker 容器化部署的优点是什么?
微服务架构和 Docker 容器化部署的优点是什么?
|
3天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
18 3
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
16 2
|
11天前
|
缓存 监控 Linux
|
14天前
|
Linux Shell 数据安全/隐私保护