docker清緩存、日志、無(wú)用鏡像
docker system df
查看docker各類型文件占用情況
docker system df
該命令列出了 docker 使用磁盤的 4 種類型:
Images: 所有鏡像占用的空間,包括拉取的鏡像、本地構(gòu)建的鏡像
Containers: 運(yùn)行中的容器所占用的空間(沒(méi)運(yùn)行就不占空間),其實(shí)就是每個(gè)容器讀寫(xiě)層的空間
Local Volumes: 本地?cái)?shù)據(jù)卷的空間
Build Cache: 鏡像構(gòu)建過(guò)程中,產(chǎn)生的緩存數(shù)據(jù)
RECLAIMABL
這個(gè)字段明確了該類型中可以清理的空間
查看每個(gè)image、container占用情況
docker system df -v
我們使用 docker 鏡像創(chuàng)建容器時(shí),docker會(huì)創(chuàng)建一些目錄,如:
/var/lib/docker/containers/<容器ID>
目錄,如果容器使用了默認(rèn)的日志模式,那么該容器的日志會(huì)以JSON
形式保存在此目錄下。/var/lib/docker/overlay2
目錄,該目錄包含容器的讀寫(xiě)層,如果容器使用自己的文件系統(tǒng)保存了數(shù)據(jù),那么這些數(shù)據(jù)就會(huì)寫(xiě)到此目錄下。
1、清理容器日志
Containers 包含的我們?nèi)萜髯陨淼娜萘?、產(chǎn)生的數(shù)據(jù)容量、產(chǎn)生的日志容量
# 查看所有容器下日志的大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -sh
# 寫(xiě)個(gè)空文件到容器日志中
cat /dev/null > /var/lib/docker/containers/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a-json.log
# 將某個(gè)日志文件清零
truncate -s 0 /var/lib/docker/containers/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a-json.log
這里可以看出我的其中一個(gè)容器的日志已經(jīng)到14G
設(shè)置容器日志的最大容量,下面是nginx的設(shè)置的例子
nginx:
image: nginx:1.12.1
restart: always
logging:
driver: "json-file"
options:
max-size: "5g"
2、清理無(wú)用的image、volume、container
如果發(fā)現(xiàn)有些容器、數(shù)據(jù)卷是沒(méi)有被使用的,此時(shí)可以通過(guò)下面命令清理 Docker 占用的空間
清理所有沒(méi)用的image、volume、container、 但是這個(gè)呢會(huì)把你暫時(shí)停止的容器、鏡像也刪除掉、當(dāng)前命令可以用于清理磁盤,刪除關(guān)閉的容器、無(wú)用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及dangling鏡像(即無(wú)tag的鏡像)
docker system prune
# 當(dāng)前命令清理得更加徹底,可以將沒(méi)有容器使用Docker鏡像都刪掉
docker system prune -a
當(dāng)然也是有其他選擇的:
#刪除所有關(guān)閉的容器:
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
#刪除所有dangling鏡像(即無(wú)tag的鏡像):
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
#刪除所有dangling數(shù)據(jù)卷(即無(wú)用的Volume):
docker volume rm $(docker volume ls -qf dangling=true)
#數(shù)據(jù)卷容器刪除
docker rm -v 卷名
參考命令:
df -h查看磁盤使用情況
df -i 查看inode使用情況
du -sh *查看當(dāng)前目錄下各個(gè)文件及目錄占用空間大小
df -h和du -sh顯示的磁盤大小不一致原因及解決辦法
df -hT顯示132G空間全部占用,du -sh顯示只占用**30G**docker system df
# 查看docker各類型文件占用情況
docker system df
該命令列出了 docker 使用磁盤的 4 種類型:
Images: 所有鏡像占用的空間,包括拉取的鏡像、本地構(gòu)建的鏡像
Containers: 運(yùn)行中的容器所占用的空間(沒(méi)運(yùn)行就不占空間),其實(shí)就是每個(gè)容器讀寫(xiě)層的空間
Local Volumes: 本地?cái)?shù)據(jù)卷的空間
Build Cache: 鏡像構(gòu)建過(guò)程中,產(chǎn)生的緩存數(shù)據(jù)
\# RECLAIMABL 這個(gè)字段明確了該類型中可以清理的空間
查看每個(gè)image、container占用情況
docker system df -v
我們使用 docker 鏡像創(chuàng)建容器時(shí),docker會(huì)創(chuàng)建一些目錄,如:
/var/lib/docker/containers/<容器ID> 目錄,如果容器使用了默認(rèn)的日志模式,那么該容器的日志會(huì)以 JSON 形式保存在此目錄下。
/var/lib/docker/overlay2 目錄,該目錄包含容器的讀寫(xiě)層,如果容器使用自己的文件系統(tǒng)保存了數(shù)據(jù),那么這些數(shù)據(jù)就會(huì)寫(xiě)到此目錄下。
1、清理容器日志
Containers 包含的我們?nèi)萜髯陨淼娜萘?、產(chǎn)生的數(shù)據(jù)容量、產(chǎn)生的日志容量
# 查看所有容器下日志的大小
find /var/lib/docker/containers/ -name *-json.log |xargs du -sh
# 寫(xiě)個(gè)空文件到容器日志中
cat /dev/null > /var/lib/docker/containers/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a-json.log
# 將某個(gè)日志文件清零??
truncate -s 0 /var/lib/docker/containers/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a/3c1452f817fad2296d1c105112faed89d01feaa4ee094e8622c959e072012f7a-json.log這里可以看出我的其中一個(gè)容器的日志已經(jīng)到`14G`
設(shè)置容器日志的最大容量,下面是nginx
的設(shè)置的例子
nginx:
image: nginx:1.12.1
restart: always
logging:
driver: "json-file"
options:
max-size: "5g"
2、清理無(wú)用的image、volume、container
如果發(fā)現(xiàn)有些容器、數(shù)據(jù)卷是沒(méi)有被使用的,此時(shí)可以通過(guò)下面命令清理 Docker 占用的空間
清理所有沒(méi)用的image、volume、container、但是這個(gè)呢會(huì)把你暫時(shí)停止的容器、鏡像也刪除掉、當(dāng)前命令可以用于清理磁盤,刪除關(guān)閉的容器、無(wú)用的數(shù)據(jù)卷和網(wǎng)絡(luò),以及dangling鏡像(即無(wú)tag的鏡像)
docker system prune
# 當(dāng)前命令清理得更加徹底,可以將沒(méi)有容器使用Docker鏡像都刪掉
docker system prune -a
當(dāng)然也是有其他選擇的:
#刪除所有關(guān)閉的容器:
docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
#刪除所有dangling鏡像(即無(wú)tag的鏡像):
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
#刪除所有dangling數(shù)據(jù)卷(即無(wú)用的Volume):
docker volume rm $(docker volume ls -qf dangling=true)
#數(shù)據(jù)卷容器刪除文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-735058.html
docker rm -v 卷名
參考命令:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-735058.html
df -h查看磁盤使用情況
df -i 查看inode使用情況
du -sh *查看當(dāng)前目錄下各個(gè)文件及目錄占用空間大小
df -h和du -sh顯示的磁盤大小不一致原因及解決辦法
df -hT顯示132G空間全部占用,du -sh顯示只占用30G
到了這里,關(guān)于docker清緩存、日志、無(wú)用鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!