參考于: docker占用磁盤空間清理
自從接觸并使用docker就明顯的發(fā)現(xiàn)一個問題绍刮,在磁盤空間中有一個文件
docker.raw
一直在持續(xù)的增大,在Mac路徑/Users/xiexiang/Library/Containers
下也能看到一個名叫com.docker.docker
的文件非常的大挨摸,以前一直以為是因為下載了太多的鏡像或者run了太多的容器造成的,在使用過程中也嘗試清理過鏡像和容器岁歉,但是docker.raw文件不會有一點點的變小得运。
以下方法可以解決Docker磁盤占用情況膝蜈,可以根據(jù)自身情況測試,本人親測可用熔掺。
當然看文章前首先聲明:對于磁盤空間比較大的Mac用戶不用在意空間大小或者Windows用戶饱搏,可以忽略本篇文章。
Docker System命令
它是用于管理磁盤空間
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(134, 145, 148); background: rgb(239, 242, 243); line-height: 1.6; border: none; text-align: right;">1
</pre>
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(77, 77, 76); background: rgb(247, 247, 247); line-height: 1.6; border: none; width: 145.234px;">docker system df
</pre>
|
類似于linux上的df命令置逻,用于查看Docker的磁盤使用情況:
可知推沸,Docker鏡像占用了808M磁盤,Docker容器占用了436KB磁盤券坞,Docker數(shù)據(jù)卷占用了17KB磁盤鬓催。因為之前盲目清理過docker,但是并沒有改變docker的占用空間恨锚。
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(134, 145, 148); background: rgb(239, 242, 243); line-height: 1.6; border: none; text-align: right;">1
</pre>
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(77, 77, 76); background: rgb(247, 247, 247); line-height: 1.6; border: none; width: 192.188px;">docker system prune -a
</pre>
|
docker system prune命令可以用于清理磁盤宇驾,刪除關閉的容器、無用的數(shù)據(jù)卷和網(wǎng)絡猴伶,以及dangling鏡像(即無tag的鏡像)课舍。docker system prune -a命令清理得更加徹底,可以將沒有容器使用Docker鏡像都刪掉他挎。注意筝尾,這兩個命令會把你暫時關閉的容器,以及暫時沒有用到的Docker鏡像都刪掉了……所以使用之前一定要想清楚吶办桨。
再次執(zhí)行docker system df
你會發(fā)現(xiàn)上圖中的數(shù)據(jù)會變小很多筹淫。
執(zhí)行后,如果是Mac用戶崔挖,你可以嘗試看下你的總的磁盤空間是否有下降贸街,同時在 /Library/Containers下查看com.docker.docker的大小,正常情況下會小很多狸相,這樣會節(jié)省出很多的磁盤空間出來薛匪。
手動清理Docker鏡像/容器/數(shù)據(jù)卷
對于舊版的Docker(版本1.13之前),是沒有Docker System命令的脓鹃,因此需要進行手動清理逸尖。這里給出幾個常用的命令:
刪除所有關閉的容器:
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(134, 145, 148); background: rgb(239, 242, 243); line-height: 1.6; border: none; text-align: right;">1
</pre>
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(77, 77, 76); background: rgb(247, 247, 247); line-height: 1.6; border: none; width: 489.609px;">docker ps -a | grep Exit | cut -d ' ' -f 1 | xargs docker rm
</pre>
|
刪除所有dangling鏡像(即無tag的鏡像):
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(134, 145, 148); background: rgb(239, 242, 243); line-height: 1.6; border: none; text-align: right;">1
</pre>
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(77, 77, 76); background: rgb(247, 247, 247); line-height: 1.6; border: none; width: 513.094px;">docker rmi 3}")
</pre>
|
刪除所有dangling數(shù)據(jù)卷(即無用的Volume):
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(134, 145, 148); background: rgb(239, 242, 243); line-height: 1.6; border: none; text-align: right;">1
</pre>
|
<pre style="overflow: auto; font-family: consolas, Menlo, "PingFang SC", "Microsoft YaHei", monospace; font-size: 13px; margin: 0px; padding: 10px; color: rgb(77, 77, 76); background: rgb(247, 247, 247); line-height: 1.6; border: none; width: 442.641px;">docker volume rm $(docker volume ls -qf dangling=true)</pre>
|