其他

Docker Registry Browser 瘦身Tips

前言🔖


阿里云上的Docker Registry用了一段时间以后,随着容器镜像版本的推送更新,Docker Registry会占用越来越来的硬盘空间。

我们在阿里云服务器上执行一下命令,查看硬盘占用情况

df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs 904M 0 904M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 1.5M 918M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 69G 54G 13G 81% /
/dev/loop1 128K 128K 0 100% /var/lib/snapd/snap/bare/5
/dev/loop2 54M 54M 0 100% /var/lib/snapd/snap/snapd/19457
/dev/loop0 52M 52M 0 100% /var/lib/snapd/snap/icloud-notes-linux-client/10
/dev/loop4 92M 92M 0 100% /var/lib/snapd/snap/gtk-common-themes/1535
/dev/loop3 165M 165M 0 100% /var/lib/snapd/snap/gnome-3-28-1804/198
/dev/loop5 56M 56M 0 100% /var/lib/snapd/snap/core18/2785
/dev/vdb1 30G 28G 133M 100% /mnt
tmpfs 184M 0 184M 0% /run/user/0
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/bd5d5864acf390fc9b5bead1465b61e685b1b6ecf356f6f75123dfd8ad1356ef/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/9216b0add03da586188e1aa1f16b2b195e2f04e8db55fc5831515b3373692b1e/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/866cb10232438472f81fe71909e1b41d7208f5e805811e138cc14e56259464cd/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/dab1d2f05dfefb7234536afa229ddda5eca5fae84f7d3686ad5833c9b6112d4a/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/0fd1bc8fd4c1da6554c601c597f30b96b735eae5ec64c4f35f1a95da3eef2a96/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/1010983079b39a28e9fc569906f772819d0f3b55d1f8cc97e711e240f0fdb38a/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/023d96984017f15741ab239d459e61652c212bb825e7569fde17d361691def59/merged

可以看到 /dev/vdb1 Registry 的挂载点/mnt目录基本都快占满了。

  

瘦身Registry 🔖


首先执行下面的命令,查询下Registry的容器id

docker ps -a

看到 registry:2 容器(ID:c12f0a070d1a)正在运行,我们可以直接用官方的垃圾回收命令来安全瘦身。

执行 Registry 垃圾回收

这是最安全的清理方式,只会删除没有被引用的镜像层,不会影响现有可用镜像。

# 基础清理(仅删除无主镜像层)
docker exec -it c12f0a070d1a registry garbage-collect /etc/docker/registry/config.yml

# 若需要更彻底清理(会删除所有未打标签的镜像,需确认这些镜像无用)
docker exec -it c12f0a070d1a registry garbage-collect /etc/docker/registry/config.yml --delete-untagged

执行完上面命令再重新查看下硬盘占用情况

df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs 904M 0 904M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 1.5M 918M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 69G 54G 13G 81% /
/dev/loop1 128K 128K 0 100% /var/lib/snapd/snap/bare/5
/dev/loop2 54M 54M 0 100% /var/lib/snapd/snap/snapd/19457
/dev/loop0 52M 52M 0 100% /var/lib/snapd/snap/icloud-notes-linux-client/10
/dev/loop4 92M 92M 0 100% /var/lib/snapd/snap/gtk-common-themes/1535
/dev/loop3 165M 165M 0 100% /var/lib/snapd/snap/gnome-3-28-1804/198
/dev/loop5 56M 56M 0 100% /var/lib/snapd/snap/core18/2785
/dev/vdb1 30G 13G 16G 44% /mnt
tmpfs 184M 0 184M 0% /run/user/0
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/bd5d5864acf390fc9b5bead1465b61e685b1b6ecf356f6f75123dfd8ad1356ef/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/9216b0add03da586188e1aa1f16b2b195e2f04e8db55fc5831515b3373692b1e/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/866cb10232438472f81fe71909e1b41d7208f5e805811e138cc14e56259464cd/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/dab1d2f05dfefb7234536afa229ddda5eca5fae84f7d3686ad5833c9b6112d4a/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/0fd1bc8fd4c1da6554c601c597f30b96b735eae5ec64c4f35f1a95da3eef2a96/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/1010983079b39a28e9fc569906f772819d0f3b55d1f8cc97e711e240f0fdb38a/merged
overlay 69G 54G 13G 81% /var/lib/docker/overlay2/023d96984017f15741ab239d459e61652c212bb825e7569fde17d361691def59/merged

可以看到/mnt释放了很多空间。