[Docker] 清理硬碟空間
新的 Project 大量使用 Docker,有時候一天都要 Build 好幾次不同的映像檔,筆者在建立的映像檔都是 3GB 以上的等級,雖然常常刪除,但是漸漸地雲端伺服器的空間也不太夠用了,找尋了一下大部分清理的相關內容,都是以指令 du, df 或是 du -sm * | sort -n 去查找硬碟實際存取檔案的狀況來清理硬碟為主,本篇想要提供另外一個可能性,如果你是大量使用 docker 的情況的話,可以參考本篇 [Docker] 清理硬碟空間。
以下是清理前的磁碟空間狀況:
[root@vmi000000 docker]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 417M 3.5G 11% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 196G 179G 7.7G 96% /
/dev/sda1 969M 149M 755M 17% /boot
tmpfs 783M 0 783M 0% /run/user/0
tmpfs 783M 0 783M 0% /run/user/1000
查看 docker 使用的硬碟大小
可以使用官網推薦的 docker system df 的指令,以下我們可以看到 Docker 除了有使用硬碟空間來儲存 Images (映像檔) 以外也有一些 Containers
[root@vmi000000 home]$ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 6 2 8.155GB 4.84GB (59%)
Containers 135 0 29.78GB 29.78GB (100%)
Local Volumes 0 0 0B 0B
Build Cache 0 0 0B 0B
另外如果想要查看更精細的使用空間分佈可以使用指令 docker system df -v:
docker system df -v
Images space usage:
REPOSITORY TAG IMAGE ID CREATED SIZE SHARED SIZE UNIQUE SIZE CONTAINERS
busybox latest c7c37e472d31 5 weeks ago 1.224MB 0B 1.224MB 6
ubuntu 18.04 8e4ce0a6ce69 7 weeks ago 64.21MB 0B 64.21MB 0
xxxxxx/xxxxxxxxxx_runtime 1.2_master fce97f01624d 3 months ago 3.438GB 124.6MB 3.313GB 26
ubuntu 16.04 005d2078bdfa 3 months ago 124.6MB 124.6MB 0B 0
xxxxxx/xxxxxxx-dev latest 59aa2246b755 4 months ago 4.652GB 573.9MB 4.078GB 0
xxxxxx/xxxxxxxxxxxxxxx_minimum latest 350688dd2fba 13 months ago 573.9MB 573.9MB 0B 0
根據以上的資訊,判斷 docker 使用了大量的空間在儲存一些已經停止而且不在使用的 Container,所以我們利用:
docker container prune
將沒有在使用的 Container 都清除掉,如果是要清除其他的部分可以參考以下指令:
docker image prune
docker system prune
清理完之後伺服器釋出大量空間:
[root@vmi000000 home]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 417M 3.5G 11% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 196G 106G 81G 57% /
/dev/sda1 969M 149M 755M 17% /boot
tmpfs 783M 0 783M 0% /run/user/0
tmpfs 783M 0 783M 0% /run/user/1000