Docker鏡像導致centos-root根分區容量爆滿
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:
Docker鏡像導致centos-root根分區容量爆滿