容器清理
- docker container prune : 僅刪除停止運(yùn)行的容器。
- docker rm -f $(docker ps -aq) : 刪除所有容器(包括停止的、正在運(yùn)行的)。
- docker container rm -f $(docker container ls -aq) : 同上。
鏡像清理
docker rmi <image id> :通過(guò)鏡像的id來(lái)刪除指定鏡像。
有一些鏡像是隱形的:
- 子鏡像,就是被其他鏡像引用的中間鏡像,不能被刪除。
- 懸掛狀態(tài)的鏡像,就是不會(huì)再被使用的鏡像,可以被刪除。
其他命令:
-
docker image ls -f dangling=true : 可以列出所有懸掛狀態(tài)的鏡像
并使用命令 docker image rm $(docker image ls -f dangling=true -q) 或 docker image prune進(jìn)行刪除。 - docker image rm $(docker image ls -q) :刪除所有鏡像。但正在被容器使用的鏡像無(wú)法刪除。
數(shù)據(jù)卷清理
- docker volume rm $(docker volume ls -q) :刪除不再使用的數(shù)據(jù)卷。
- docker volume prune :同上。
緩存清理
Docker 18.09 引入了 BuildKit ,提升了構(gòu)建過(guò)程的性能、安全、存儲(chǔ)管理等能力。
docker builder prune :刪除 build cache。
一鍵清理
docker system df 命令,類(lèi)似于 Linux上的 df 命令,用于查看 Docker 的磁盤(pán)使用情況:

docker system df
TYPE列出了 Docker 使用磁盤(pán)的 4 種類(lèi)型:
- Images :所有鏡像占用的空間,包括拉取下來(lái)的鏡像,和本地構(gòu)建的。
- Containers :運(yùn)行的容器占用的空間,表示每個(gè)容器的讀寫(xiě)層的空間。
- Local Volumes :容器掛載本地?cái)?shù)據(jù)卷的空間。
- Build Cache :鏡像構(gòu)建過(guò)程中產(chǎn)生的緩存空間(只有在使用 BuildKit 時(shí)才有,Docker 18.09 以后可用)。
最后的 RECLAIMABLE 是可回收大小。
- docker system prune : 可以用于清理磁盤(pán),刪除關(guān)閉的容器、無(wú)用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及 dangling 鏡像(即無(wú) tag 的鏡像)。
-
docker system prune -a : 清理得更加徹底,可以將沒(méi)有容器使用 Docker鏡像都刪掉。
注意,這兩個(gè)命令會(huì)把你暫時(shí)關(guān)閉的容器,以及暫時(shí)沒(méi)有用到的 Docker 鏡像都刪掉了。
定期清理沒(méi)用的數(shù)據(jù),是個(gè)好習(xí)慣!