LoginSignup
11
11

More than 5 years have passed since last update.

Gitlab Container Registryのお掃除

Last updated at Posted at 2018-07-21

はじめに

gitlabでソース管理を行い、CIにてgitlab container registry にdocker imageを登録しています。
ディスク消費量が増え続けてきたのでゴミ掃除したお話です。

結論

経緯

1年経過したころの話です。gitlab serverのディスク消費量、何かすごい増えているなーと気づいきました。
そして、
/var/opt/gitlab/gitlab-rails/shared/registry
のディスク消費量を確認すると・・・。

$ sudo du -s -h *
37G     artifacts
513M    cache
0       lfs-objects
32K     pages
89G     registry
0       tmp
$

となっており、untaggedなイメージの履歴が延々と残り続けているのでゴミ掃除を行う事にしました。

registry-garbage-collectの実行

gitlab公式ドキュメントにそって、下記コマンドで実行してみます。

$ sudo gitlab-ctl registry-garbage-collect

5分くらいで終わりました!早い!でも・・・

$ sudo gitlab-ctl registry-garbage-collect
 ....
5726 blobs marked, 0 blobs eligible for deletion
ok: run: registry: (pid 32084) 0s
$ 

0 blobs eligible for deletion

ん?消えていない・・・!なんでだろーと思い、色々探していると・・・下記情報が見つかりました。

なるほど。消えない場合があるみたいですね。で、
 https://gitlab.com/gitlab-org/docker-distribution-pruner
使えばうまい事消えるみたいですね。やってみましょう。

docker-distribution-prunerの実行

事前準備

下記のように実行できるようにしました。

$ yum install go
$ go get -u gitlab.com/gitlab-org/docker-distribution-pruner
$ chmod 755  go/bin/docker-distribution-pruner

実行

実行してみます。

$ cd ./go/bin
$ sudo ./docker-distribution-pruner -config=/var/opt/gitlab/registry/config.yml -delete-old-tag-versions=false --delete
 ...
INFO[0000] BLOBS INFO: Objects/Unused: 258 / 4114 Data/Unused: 6.0 GB / 83 B
WARN[0000] DELETEABLE INFO: 5540 links, 4114 blobs, 0 other, 83 B
$

お、よさそうですね!削除結果は、バックアップフォルダに入っているので、一通り消えちゃいけないものが消えていないか確認して、バックアップフォルダも削除します。

$ cd /var/opt/gitlab/gitlab-rails/shared/registry
$ rm -rf docker_backup

補足

  • --delete を付けずに実行すれば何が削除されるか事前に確認することができます。
  • 実行した結果は、 repositories.csv に出力されています。imageの一覧等に確認する時に便利かも。。。
11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11