Container Registry 2019年9月23日から保持ポリシーを導入
IBM Cloud® Container Registry保持ポリシーは、重要なイメージのみを保持することで、レジストリ名前空間を管理するのに役立ちます。
当初の発表は2019年10月9日に発表された。
Container Registry保持ポリシーが提供されるようになり、名前空間内の各リポジトリに保持するイメージの数を選択できるようになりました。 保持ポリシーを使用すると、乱雑さを減らし、ストレージの割り当て量を満たし、ストレージ コストを最小限に抑えることができます。
継続的デリバリーのプラクティスに従う場合、顧客は頻繁に新しいイメージをレジストリ名前空間にプッシュします。 時間が経つにつれて、レジストリには多くのイメージが保存されますが、そのうちのいくつかは必要になったり、デプロイされたりすることはないかもしれません。
保持ポリシーを使用すると、特定の名前空間内の各リポジトリに対して保持するイメージの数を選択でき、その名前空間内の他のすべてのイメージは削除されます。 最新の画像が保持され、その年齢は画像の作成日によって決まります。 保持ポリシーを 1 回実行してすばやくクリーンアップすることも、毎日実行するようにスケジュールして、ポリシー設定外のイメージを継続的に削除することもできます。
CLI で保持ポリシーを設定する
保持ポリシーを設定するには、ibmcloud cr retention-policy-set
このコマンドは、複数の画像と名前空間を引数として受け取ります。 保持ポリシーを設定すると、そのポリシーは直ちに有効になり、ポリシーを満たすためにイメージが直ちに削除され、ポリシーは毎日繰り返し実行されるようにスケジュールされます。 削除される画像が表示され、続行するかどうかの確認を求められます。
例えば、retention-test
名前空間には2つのリポジトリがあり、mysql
そして mongo
それぞれに 3 つの画像が含まれています。
$ ibmcloud cr images --restrict retention-test
Listing images...
Repository Tag Digest Namespace Created Size Security status
uk.icr.io/retention-test/mongo 3.6.14 5d962dcc31f7 retention-test 2 weeks ago 165 MB 1 Issue
uk.icr.io/retention-test/mongo 4.0.12 b8bb45950dfb retention-test 2 weeks ago 153 MB 1 Issue
uk.icr.io/retention-test/mongo 4.2 5de3b9233bae retention-test 2 weeks ago 147 MB 1 Issue
uk.icr.io/retention-test/mysql 5.6 b8076d31e751 retention-test 3 weeks ago 83 MB 4 Issues
uk.icr.io/retention-test/mysql 5.6.43 5ab881bc5abe retention-test 6 months ago 83 MB 4 Issues
uk.icr.io/retention-test/mysql 5.7.27 5c508e03f7f1 retention-test 3 weeks ago 124 MB 7 Issues
OK
この例では、各リポジトリに 2 つのイメージが保持されます。つまり、各リポジトリから 1 つのイメージが直ちに削除されます。
$ ibmcloud cr retention-policy-set --images 2 retention-test
Image Tags
uk.icr.io/retention-test/mongo@sha256:5d962dcc31f7xxxxxxx 3.6.14
uk.icr.io/retention-test/mysql@sha256:5ab881bc5abexxxxxxx 5.6.43
Found 2 images to delete.
If you set this policy, the selected images are deleted immediately according to the rules that you set in your policy.
Deleted images are moved to your trash and can be restored for 30 days. Do you want to continue to set the policy? [y/N]> y
Deleting 2 images...
Successfully deleted 2 images.
OK
The scheduled retention policy to keep 2 images per repository in retention-test is set.
OK
保持ポリシーを一覧表示するには、ibmcloud cr retention-policy-list
指示。 デフォルトのポリシーではすべてのイメージが保持されるため、アカウント内のすべての名前空間がこのリストに表示されます。
$ ibmcloud cr retention-policy-list
Listing image retention policies for account 'AP Account' in registry 'uk.icr.io'...
Namespace Images to retain
ap-test All
retention-test 2
OK
スケジュールされた保持ポリシーでは、ポリシーの仕様を満たすために画像が自動的に削除されるため、復元が必要な場合に備えて、削除された画像を削除後 30 日間保持するゴミ箱が実装されています。 保持ポリシーによって削除された画像だけでなく、削除された画像はすべて、最初はゴミ箱に移動されます。 ゴミ箱は、ibmcloud cr trash-list
指示:
$ ibmcloud cr trash-list --restrict retention-test
Listing the contents of the trash...
Digest Days until expiry Tags
uk.icr.io/retention-test/mongo@sha256:5d962dcc31f7xxxxxxx 30 3.6.14
uk.icr.io/retention-test/mysql@sha256:5ab881bc5abexxxxxxx 30 5.6.43
OK
ゴミ箱内の画像は取り出すことはできませんが、ibmcloud cr image-restore
指示。
定期的なポリシーを設定せずにクイッククリーンアップを実行する場合は、ibmcloud cr retention-run
同じようにコマンドを実行します。
保持ポリシーは CLI でのみサポートされます。
詳細情報
ドキュメントの保持ポリシーの詳細については、以下を参照してください。名前空間をクリーンアップするContainer Registry 、 そして 更新する container-registry
CLIプラグイン 試してみる。