Docker overlay2 清理 & 數據轉移


Docker overlay2 清理 & 數據轉移

2021-04-06 456點熱度 2人點贊 0條評論

今天項目的生產環境不穩定,登錄到服務器上發現Docker的/var/lib/docker/overlay2目錄將磁盤占用滿了,導致程序分配不到內存。

要判斷是否占用滿了磁盤,可以使用

# 查看Docker系統位置 docker info | grep 'Dir' # 查看文件占用信息 du -sh /var/lib/docker/* # 查看Docker的磁盤使用情況 docker system df

從上面的信息發現docker並沒有占滿全部的磁盤,遂使用 du -sh 查看發現,overlay已經100%了。

清理文件

通過以上信息發現基本都是docker容器的占用。這時繼續查看到底是什么占用如此巨大。經排查發現是容器內的應用生成了大量的日志。

# 找出目錄下大於30M的文件 find * -type f -size +30M -print0 | xargs -0 du -sh # 批量刪除日志文件 find * -type f -size +30M -print0 | xargs -0 du -sh | grep '/diff/root/logs/csp/sentinel-record.log' | awk '{ print $2 }' | xargs rm -rf

數據轉移

從目前的情況來看,docker默認將文件及其容器放置在了系統盤的掛載區內,這時我們需要將其挪至外掛磁盤上。

數據轉移前需要將已有的容器備份,因為我的程序在之前就將重要的容器掛載到了外部磁盤,所以這里略過。

# 停止容器 systemctl stop docker # 修改容器配置 cat /etc/docker/daemon.json { "registry-mirrors": ["https://wkumpv63.mirror.aliyuncs.com"], "data-root": "/data/docker-data", "storage-driver": "overlay2" } # 啟動容器 systemctl start docker systemctl enable docker


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM