Docker垃圾清理方案

2021-10-20 21:45:24 字數 1677 閱讀 7083

我們在使用docker的過程中發現基於swarm使用storage driver: overlay的方式進行儲存.但是發現這個特別占用儲存空間.

docker container prune
停止的容器,不使用的volume,不使用的networks,懸掛的映象

docker system prune -a
我們通過上面的操作清除了一些無用的資料,但是,overlay還是特別大.我們先了解下overlay儲存.

整合進了linux 3.18核心.

overlay儲存驅動主要使用的是overlayfs技術.中文名是疊合式檔案系統.多個檔案系統可以mount之後進行合併.

docker 映象層 lowerdir

docker 容器層 upperdir

docker 容器掛載點 merged

這個三個層對應了 overlayfs的結構. 我們通過docker inspect 可以檢視到如下結構

"graphdriver": 

}

映象在 /root

掛載點在 /merged

容器在 /upper

工作目錄 /work

我們做了乙個實驗,我們啟動乙個容器(版本不同),之後

docker stop conatiner

docker rm container

通過對資料大小的監控,我們發現 overlay會隨著新映象的產生而產生一些資料,隨著容器的關閉刪除,這個檔案並沒有縮小體積.如何解決呢? 看來我們忽視了乙個問題.我們使用docker system prune以為可以不需要的資料都清理了,但是關於images中是這樣描述的" dangling images" 懸掛的映象 .關於這個詞彙我還沒有理解.不過通過測試,即使我把容器停止也無法清理映象,所以,我無法理解 懸掛是怎樣的狀態.

docker rmi images
最後我們通過手動刪除映象,則之前產生的overlay資料就隨之減少了.

tips:

檢視overlay 大小du --max-depth=1 -h

檢視數量ls|wc -w

映象有新版本產生的話,我們可以按照這樣的流程操作

docker stop container

docker rm container

docker rmi image

docker pull image

docker run ...

這樣就避免了系統磁碟一眨眼的時間就滿了.

docker 時間同步?

ln -snf /usr/share/zoneinfo/asia/shanghai /etc/localtime && echo asia/shanghai > /etc/timezone
docker 儲存地方修改

execstart=/usr/bin/dockerd --graph="/mnt/data/images"

Ubuntu 清理垃圾

1 軟體快取清理命令 sudo apt get autoclean 清理舊版本的軟體快取 sudo apt get clean 清理所有軟體快取 sudo apt get autoremove 刪除系統不再使用的孤立軟體 這三個命令主要清理公升級快取以及無用包的。2 清理linux下孤立的包 圖形介...

mysql event 清理垃圾資料

1.查詢是否開啟事件排程 show variables like event scheduler 2.開啟事件排程 臨時 set global event scheduler 1 永久 vim etc my.cnf event scheduler on 3.建立p del count儲存過程。接收傳...

kali清理垃圾記錄

sudo apt get autoclean 清理舊版本的軟體快取 sudo apt get clean 清理所有軟體快取 sudo apt get autoremove 刪除系統不再使用的孤立軟體使用 磁碟使用情況分析器檢視,發現 var log 占用空間比較大,特別是user.log 直接手動刪...