如何清理Docker佔用的磁碟空間
阿新 • • 發佈:2018-12-19
Docker的使用極大地方便了應用的釋出和維護,但同時Docker也會造成佔用過多磁碟的問題。因此定期清理Docker佔用的磁碟空間是很有必要的,以下將介紹幾種清理方式:
1.13版本前Docker
1.13版本前的Docker只能手動清理,清理的內容主要是無用的Volume、無tag的映象、停止的容器和佔用空間過大的容器日誌:
1.刪除Docker映象/容器/資料卷
刪除所有停止的容器:
$ docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
刪除所有dangling映象(即無tag的映象):
$ docker rmi $( docker images | grep "^<none>" | awk "{print $3}")
刪除所有dangling資料卷(即無用的Volume):
$ docker volume rm $(docker volume ls -qf dangling=true)
2.刪除容器日誌
$ truncate -s 0 /var/lib/docker/containers/d1e4a54a930cc1c27d1f756a79ffbc259cd30eb80c759e680725465aee86d9fc/*-json.log
d1e4a54a930cc1c27d1f756a79ffbc259cd30eb80c759e680725465aee86d9fc
:通過docker ps
命令可知,該id與容器id相同。
*-json.log
:docker中日誌檔案以該格式結尾
1.13版本及以上Docker
docker system prune
命令可以用於清理磁碟,刪除關閉的容器、無用的資料卷和網路,以及dangling映象(即無tag的映象)。docker system prune -a
命令清理得更加徹底,可以將沒有容器使用的Docker映象都刪掉。注意,這兩個命令會把你暫時關閉的容器,以及暫時沒有用到的Docker映象都刪掉了