1. 程式人生 > >如何清理Docker佔用的磁碟空間

如何清理Docker佔用的磁碟空間

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映象都刪掉了