AWS EC2/EBS擴容之Docker overlay爆滿處置

Hachibye
Jun 9, 2024

--

AWS EBS expansion(Docker overlay full solution)

這篇文章的由來:

  • 開發人員反應Gitlab無法訪問
  • 監控機制已經失效(整台機器消失/沒有metrics)
  • 查看EC2有在正常運作,還能連線登入進行搶救
  • 查看儲存空間磁碟爆滿,問題出在docker的overlay資料夾過於膨脹

首先祭上最簡單粗暴的方式 ➡ ️擴容。(底下的文章通通不用看了XD)

步驟如下:

  • AWS console > EC2 > 找到對應的機器(點擊ID進入)
  • 往下拉找到「儲存」分頁會顯示你掛載的EBS卷(點擊ID進入)
  • 點擊右上角的「操作 > 修改卷」
  • 調整至你要的大小之後儲存修改
  • 回到第一步,AWS console > EC2 > 找到對應的機器(點擊ID進入)
  • 進入該機器
  • 輸入以下指令完成擴容
#確認是否有未使用的空間(剛才擴容加上來的)
fdisk -l

#確認要擴容的目標對象
sudo lsblk

#擴展
sudo growpart /dev/nvme0n1 1

#重新調整
sudo resize2fs /dev/nvme0n1p1

#檢查
df -hT
  • 大功告成

事前排查問題階段的筆記分享:

正確的清理方式

# 只清理停止的容器。
docker container prune

# 只清理未使用的镜像。
docker image prune -a

# 只清理构建缓存。
docker builder prune

# 只清理未使用的卷。
docker volume prune

# 只清理未使用的网络。
docker network prune

# 最全面的,清理所有未使用的资源。
docker system prune -a

df -h

查看儲存空間(剩下920K)

docker system df

發現映像檔佔用的數量

docker image prune -a

清理未使用的映像檔之後釋放了27.73G

df -h

查看可用空間已經恢復到近30G

docker system df -v

查看docker佔用的詳細,已經只剩下一個Gitlab在跑,沒得清了

tree -L 3 /var/lib/docker/overlay2/

通過tree工具看一下overlay文件夾的結構

du -sh /var/lib/docker/overlay2/*

通過du指令查看一下overlay文件夾到底是誰在膨脹

--

--

Hachibye
Hachibye

Written by Hachibye

字幕組退休勞工 ... DevOps/系統/雲端/資安

No responses yet