新聞中心
用戶在使用 Docker 部署業(yè)務(wù)一段時(shí)間后,可能會(huì)發(fā)現(xiàn)宿主節(jié)點(diǎn)的磁盤容量持續(xù)增長(zhǎng),甚至將磁盤空間耗盡進(jìn)而引發(fā)宿主機(jī)異常,進(jìn)而對(duì)業(yè)務(wù)造成影響,這時(shí)候我們就需要經(jīng)常清理讓Docker環(huán)境如同初裝一樣純凈。
docker 占用的空間可以通過下面的命令查看:
$ docker system df
TYPE 列出了docker 使用磁盤的 4 種類型:
Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構(gòu)建的。
Containers:運(yùn)行的容器占用的空間,表示每個(gè)容器的讀寫層的空間。
Local Volumes:容器掛載本地?cái)?shù)據(jù)卷的空間。
Build Cache:鏡像構(gòu)建過程中產(chǎn)生的緩存空間(只有在使用 BuildKit 時(shí)才有,Docker 18.09 以后可用)。
可知,Docker鏡像占用了2.45GB磁盤,Docker容器占用了5.8KB磁盤,Docker數(shù)據(jù)卷占用了磁盤未使用。
docker system prune命令可以用于清理磁盤,刪除關(guān)閉的容器、無用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及無tag的鏡像。docker system prune -a命令清理得更加徹底,可以將沒有容器使用Docker鏡像都刪掉,但是使用這些命令時(shí)會(huì)把你暫時(shí)關(guān)閉的容器,以及暫時(shí)沒有用到的Docker鏡像都刪掉了,所以使用是一定要注意。
執(zhí)行docker system prune -a命令Docker占用的磁盤空間減少:
對(duì)于舊版的Docker(版本1.13之前),是沒有docker system命令的,因此需要進(jìn)行手動(dòng)清理。這里給出幾個(gè)常用的命
刪除所有關(guān)閉的容器
$ docker ps -a | grep Exit | cut -d \' \' -f 1 | xargs docker rm
刪除所有無tag的鏡像:
docker rmi $(docker images | grep ^ | awk {print $3})
docker rmi $(docker images | grep ^ | awk {print $3})
docker rmi $(docker images | grep none | awk \'{print $3}\')
刪除所有未被任何容器關(guān)聯(lián)引用的卷:
docker volume rm $(docker volume ls -qf dangling=true)
Docker存儲(chǔ)使用容器內(nèi)的業(yè)務(wù)日志務(wù)必配置輪詢覆寫,或者使用日志驅(qū)動(dòng)將日志輸出到外部存儲(chǔ)這樣可以避免日志文件持續(xù)增長(zhǎng),占用過高磁盤空間。另外可以結(jié)合外部監(jiān)控對(duì)宿主機(jī)的磁盤空間使用情況進(jìn)行監(jiān)控和告警。
分享名稱:云計(jì)算核心技術(shù)Docker教程:Docker清理磁盤空間
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/cpjicg.html