IBM Cloud Docs
Container Registry 2019年9月23日から保持ポリシーを導入

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プラグイン 試してみる。