天天看點

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根分區容量爆滿擴充根分區