docker 在長時間使用的情況下,經常需要刪除舊的容器並建立新的容器,長此以往,docker 的資料卷 volumes 會產生了非常多的殭屍檔案,這些將是穩健大都是未繫結容器的目錄
查詢殭屍檔案
在 docker 1.9 以上的版本中,官方提供用於查詢殭屍檔案的命令:
docker volume ls -qf dangling=true
docker 1.13 引入了類似於 linux 上 df 的命令,用於檢視 docker 的磁碟使用情況
docker system df'''type total active size reclaimable
images 2 1 306.6mb 233.7mb (76%)
containers 1 1 12.62gb 0b (0%)
local volumes 20 0 16gb 16gb (100%)
build cache 0 0 0b 0b
'''
上述資訊可以看出
手動刪除命令
#刪除所有dangling資料卷(即無用的volume,殭屍檔案)
docker volume rm $(docker volume ls -qf dangling=true)
#刪除所有dangling映象(即無tag的映象)
docker rmi $(docker images | grep "
^" | awk "")
#刪除所有關閉的容器
docker ps -a | grep exit | cut -d '
' -f 1 | xargs docker rm
刪除關閉的容器、無用的資料卷和網路,以及dangling映象(即無tag的映象)
注意,所有關閉的容器都會被刪除,請核查是否存在關閉執行但是需要保留的容器
#刪除關閉的容器、無用的資料卷和網路
docker system prune
#刪除更徹底,可以將沒有容器使用docker映象都刪掉
docker system prune -a
重啟 docker
使用上面幾個方法的命令可以有效清理 docker 執行所產生的無用檔案,且無需重啟 docker 即可生效。
但是 docker 也許存在某些 bug(核心 3.13 版本的 docker 確診),導致 docker 無法清理一些無用目錄,不過重啟 docker 可以解決這個問題
參考:
Docker 資料卷 資料卷容器
一,概念解析 1,資料卷 資料卷就是在宿主中可以在容器之間進行共享和重用的一系列和檔案和資料夾,通過docker run v命令可以將資料卷掛載到對應的容器目錄空間,進行檔案讀取,容器卷特性如下 資料卷可以在容器之間共享和重用,容器間傳遞資料將變得高效方便 對資料卷內資料的修改會立馬生效,無論是容器...
Docker資料卷和資料卷容器
在容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume containers 資料卷 資料卷是乙個可提供乙個或多個容器使用的特殊目錄,它繞過ufs unix檔案系統 可以提供很多有用的特性 資料卷可以在容器之間共享和使用 對資料卷的修改會立馬生效 對資料...
docker 資料卷和資料卷容器
docker 資料管理 在生產環境中使用 docker 往往需要對資料進行持久化,或者需要在多個容器之間進行 資料共享,這必然涉及容器的資料管理操作 容器中的管理資料主要有兩種方式 資料卷 data volumes 容器內資料直接對映到本地主機環境 資料卷容器 data volume contain...