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的迁移。
相关文章
|
2天前
|
Kubernetes Cloud Native Docker
云原生时代的容器化实践:Docker与Kubernetes入门
【9月更文挑战第30天】在云计算的浪潮中,云原生技术正以前所未有的速度重塑着软件开发和运维领域。本文将通过深入浅出的方式,带你了解云原生的核心组件——Docker容器和Kubernetes集群,并探索它们如何助力现代应用的构建、部署和管理。从Docker的基本命令到Kubernetes的资源调度,我们将一起开启云原生技术的奇妙之旅。
|
5天前
|
Kubernetes Linux 开发者
深入探索Docker容器化技术的奥秘
深入探索Docker容器化技术的奥秘
15 1
|
3天前
|
网络协议 安全 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基础知识,包括网络驱动、端口映射和命名等核心概念,并深入探讨了 Bridge、Host、Overlay 和 Macvlan 四种网络类型的特点及应用场景。此外,还提供了创建、连接、查看和删除自定义网络的命令示例,以及高级网络配置方法,如网络命名空间、DNS 解析和安全通信配置,帮助开发者构建更健壮的容器化应用。
|
4天前
|
Cloud Native 持续交付 Docker
深入解析Docker容器化技术及其在生产环境中的应用
深入解析Docker容器化技术及其在生产环境中的应用
9 0
|
5天前
|
存储 Kubernetes Docker
深入探索容器化技术:Docker 实战与 Kubernetes 管理
深入探索容器化技术:Docker 实战与 Kubernetes 管理
16 0
|
6天前
|
Docker 容器
docker容器内需要执行sudo hwclock --systohc吗
docker容器内需要执行sudo hwclock --systohc吗
|
6天前
|
安全 Linux 虚拟化
10-26|我现在加了,在容器内也可以改时间了,但是我在容器内改了,为什么会影响到linux机子啊
10-26|我现在加了,在容器内也可以改时间了,但是我在容器内改了,为什么会影响到linux机子啊
|
6天前
|
Docker 容器
6-16|docker怎么把容器内的文件传出来
6-16|docker怎么把容器内的文件传出来
|
6天前
|
运维 监控 Docker
掌握 Docker Compose:简化你的多容器应用部署
在微服务架构和容器化技术日益普及的今天,管理多个容器的部署和运维变得颇具挑战。Docker Compose 通过一个 YAML 文件定义和运行多容器 Docker 应用,极大地简化了这一过程。本文介绍了 Docker Compose 的基本概念、使用方法及其优势,包括简化配置、一键部署、易于版本控制和环境一致性。通过具体示例展示了如何安装 Docker Compose、创建 `docker-compose.yml` 文件并管理服务。掌握 Docker Compose 可显著提高开发效率和应用运维质量。
|
19天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
68 5
下一篇
无影云桌面