Docker镜像导致centos-root根分区容量爆满

简介:

  当虚拟机服务器运行Docker久了后,发现Docker的文件越来越大,某天发现此台机上的数据库访问不了了,再重启数据库等日志,提示空间不足,查看磁盘空间:

  root分区满载啊,前段时间还有不少空间的,查下什么大文件内容占了空间。

find / -xdev -size +100M -exec ls -l {} \;

 

最近用的docker越来越大 才导致磁盘满了。

那下面要么清理docker,要么扩展磁盘。

两步都做吧,先简单清理docker,或许可以清理一些空间出来。

 

先 docker images -a 看一下是不是有过多的 <none> 的镜像了,其中有一部分是这类镜像。
# 删除所有未打标签的镜像.

docker rmi $(docker images -aq -f "dangling=true")

容器的内容也是在存储层的。可以 docker ps -a 看一下是不是有很多之前的容器没有删掉的,可以 docker rm $(docker ps -aq -f "dangling=true") 来删除。

垃圾回收

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v /etc:/etc:ro spotify/docker-gc

有些容器明明stop了,但是它还是占着某些资源

docker rm -f $(docker ps -a | grep Exit | awk '{ print $1 }')

 

使用docker自带命令先清理一次。

docker system prune -a

注意:

这可能会清除掉images,慎用。

再进行了上面对docker处理后,下面对磁盘扩容。

扩展根分区

VMware分配空间

选中虚拟机->虚拟机设置->添加=》硬盘->添加15G,可以看看第一张图的硬盘1是SCSI(0:0)新加的硬盘2是SCSI(0:1)

先看一下现有磁盘情况:

# fdisk -l

 

对新磁盘进行分区:

# fdisk /dev/sdb

在fdisk的交互模式中,依次输入:

n  --创建新分区
p  --创建主分区
<回车>  --默认分区编号
<回车>  --默认起始扇区位置。
<回车>  --默认结束扇区位置。
w  --写入分区表

这样就把整个磁盘分成了一个区。

再看一下现有磁盘情况:

# fdisk -l

已经多出了一个新分区:

将新分区用于扩展/root

先看一下卷分组:

# vgdisplay -v

可以看到当前卷分组名为"centos_h32"。

为之前新增的分区创建物理卷:

# pvcreate /dev/sdb1

查看结果:

# pvdisplay

扩展卷分组,"centos_h32"是vgdisplay命令查到的卷分组名:

# vgextend centos_h32 /dev/sdb1

提示成功扩展。

 

下面查看一下逻辑卷:

# lvdisplay

可以看到/dev/centos_h32/root目前的LV Size是17.47GiB。

 

下面扩展逻辑卷/dev/centos_h32/root:

# lvextend -L +15G /dev/centos_h32/root

注:+15G是我们新增加的分区大小。

扩展后,还要执行一步 将文件系统扩大:

# xfs_growfs /dev/centos_h32/root

扩展完成。

因为安装CentOS用的xfs分区,所以使用命令xfs_growfs扩展文件系统大小。否则的话使用resize2fs命令。
查看结果:

# df -Th

/root已经扩充到33GiB:

 
目录
相关文章
|
19天前
|
Docker 容器 Perl
云效flow构建docker镜像更换apt源为阿里镜像源
在 Dockerfile 中添加命令以更换 Debian 源为阿里云镜像,加速容器内软件包下载。核心命令通过 `sed` 实现源地址替换,并更新 apt 软件源。其中 `cat` 命令用于验证替换是否成功,实际使用中可删除该行。
174 32
|
2月前
|
存储 JSON 数据格式
docker load 后镜像名称为空的问题解决
Docker在容器化应用程序时提供了强大的镜像管理功能,但也可能在某些操作中遇到如镜像名称为空的问题。通过理解问题的成因并采取适当的解决方案,如正确保存和加载镜像、手动修复标签等,可以有效避免和解决这一问题。通过本文提供的指导,您可以确保在使用Docker进行镜像操作时更为顺利,并提高容器管理的效率。
212 82
|
9天前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
47 16
|
10天前
|
关系型数据库 MySQL Docker
|
20天前
|
Ubuntu Linux 网络安全
Ubuntu Docker镜像:支持systemctl、SSH、VNC
总的来说,创建一个支持systemctl、SSH和VNC的Ubuntu Docker镜像需要一些技术知识,但是通过学习和实践,我们可以掌握这些技术。这将使我们能够更有效地使用Docker,更好地管理我们的应用程序和服务。CentOS系统中的日志文件位置和管理
61 17
|
25天前
|
Ubuntu 安全 网络安全
Docker镜像:Ubuntu支持systemctl、SSH和VNC
总的来说,Docker提供了一个灵活且强大的方式来创建和运行自定义的Ubuntu镜像。通过理解和使用Dockerfile,你可以轻松地创建一个支持systemctl、SSH和VNC的Ubuntu镜像。
118 21
|
1月前
|
NoSQL Redis 数据库
Docker平台上的Redis镜像运行
这就是如何在Docker平台上运行Redis镜像的全部过程。走进Docker和Redis的世界,探索更多可能!
98 10
|
2月前
|
SQL Linux 数据库
YashanDB Docker镜像制作
本文介绍了使用Docker部署YashanDB数据库的方法及其优势。相比传统部署方式,Docker简化了环境配置,实现一键部署,确保软件在不同环境中一致运行。文章详细讲解了数据库镜像与容器的概念、Dockerfile的构建流程,以及如何通过Dockerfile定制YashanDB镜像。此外,还演示了镜像的发布过程,包括推送至阿里云容器镜像服务(ACR)。最后,探讨了容器启动时的初始化脚本设置和数据文件复用方法,满足客户对数据库自动化初始化和数据持久化的需求。
|
2月前
|
安全 API 算法框架/工具
大模型文件Docker镜像化部署技术详解
大模型文件Docker镜像化部署技术详解
251 2
|
3月前
|
安全 Linux
CentOS下载ISO镜像的方法
访问CentOS官方网站(https://www.centos.org/download/),在“Downloads”页面找到ISO镜像下载链接,选择所需版本和架构(如x86_64)开始下载。CentOS分为Linux版和Stream版,前者每两年发行一次并提供10年安全维护,后者为滚动更新。旧版本可在Vault(https://vault.centos.org/)下载。建议选择DVD格式镜像,包含完整系统和常用软件。
2285 14
CentOS下载ISO镜像的方法