天天看点

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

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

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

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

find / -xdev -size +100M -exec ls -l {} \;
Docker镜像导致centos-root根分区容量爆满扩展根分区

最近用的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") 来删除。

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

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

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

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

docker system prune -a
Docker镜像导致centos-root根分区容量爆满扩展根分区

注意:

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

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

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

先看一下现有磁盘情况:

对新磁盘进行分区:

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

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

再看一下现有磁盘情况:

# fdisk -l

已经多出了一个新分区:

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

将新分区用于扩展/root

先看一下卷分组:

# vgdisplay -v
Docker镜像导致centos-root根分区容量爆满扩展根分区

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

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

# pvcreate /dev/sdb1

查看结果:

# pvdisplay
Docker镜像导致centos-root根分区容量爆满扩展根分区

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

# vgextend centos_h32 /dev/sdb1

提示成功扩展。

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

下面查看一下逻辑卷:

# lvdisplay
Docker镜像导致centos-root根分区容量爆满扩展根分区

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

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

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

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

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

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

扩展完成。

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

# df -Th

/root已经扩充到33GiB:

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