Container Registry 概説
IBM Cloud® Container Registry にはマルチテナント・プライベート・イメージ・レジストリー が用意されていて、コンテナー・イメージ保管し、それをお客様の IBM Cloud アカウント内の他のユーザーと共有するために使用できます。
IBM Cloud コンソールには、簡単なクイック・スタートが含まれます。 IBM Cloud コンソールの使用法について詳しくは、Vulnerability Advisor によるイメージ・セキュリティーの管理を参照してください。
コンテナー・イメージ、名前空間名、説明フィールド、イメージ構成データ (イメージ名やイメージ・ラベルなど) に個人情報を含めないでください。
開始前に
IBM Cloud ibmcloud
コマンドを実行できるように、IBM Cloud CLI をインストールします。IBM Cloud CLI の概要を参照してください。
以下の説明は、あなたが自分のアカウントで、すべての操作を許可されていると仮定しています。 コマンドを実行できず、他の人が所有・管理しているアカウントのメンバーであることが判明した場合、 Container Registry サービスの設定と操作を行うための適切な権限が不足している可能性があります。 この場合、必要なIAMサービスアクセスロール権限を与えるよう管理者に依頼する必要があります。 詳しくは Container Registry を ご覧ください
Container Registry CLI のインストール
-
以下のコマンドを実行して、
container-registry
CLI プラグインをインストールします:ibmcloud plugin install container-registry
プラグインのインストールの詳細については、 プラグインによる IBM Cloud CLI の拡張を 参照してください。
名前空間のセットアップ
名前空間を 作成する。 名前空間は指定したリソース・グループに作成されるので、名前空間内のリソースに対するアクセス権限は、リソース・グループ・レベルで構成できます。 リソース・グループを指定せず、リソース・グループをターゲットにしない場合は、デフォルトのリソース・グループが使用されます。 リソース・グループに割り当てられた名前空間は、IBM Cloud コンソールの リソース・リスト ページに表示されます。
-
IBM Cloud にログインします。
ibmcloud login
フェデレーテッド ID がある場合は、
ibmcloud login --sso
を使用してログインします。 ユーザー名を入力し、CLI 出力に示された URL を使用してワンタイム・パスコードを取得します。 フェデレーテッド ID がある場合は、--sso
を指定しないログインは失敗し、--sso
オプションを指定したログインは成功します。イメージをプッシュするまで Container Registry にログインする必要はありません。ステップ 5: イメージを名前空間にプッシュするを参照してください。
-
名前空間を追加して、独自のイメージ・リポジトリーを作成します。
MY_NAMESPACE
を任意の名前空間に置き換えます。名前空間は、同じリージョン内のすべての IBM Cloud アカウントにわたって固有である必要があります。 名前空間は 4 文字から 30 文字までで、含めることができるのは、小文字、数字、ハイフン (-)、下線 (_) のみです。 名前空間は、文字または数値で開始および終了する必要があります。
ibmcloud cr namespace-add MY_NAMESPACE
以下のいずれかのオプションを使用して、任意のリソース・グループ内に名前空間を配置することができます。
- 名前空間を作成する前に、
ibmcloud target -g RESOURCE_GROUP
コマンドを実行します。ここで、RESOURCE_GROUP
はリソース・グループです。 - コマンドの
-g
オプションを使ってリソースグループを指定する。ibmcloud cr namespace-add
コマンドで指定します。
ネームスペースを作成しようとしたときに問題が発生した場合は、「 ネームスペースを追加できません 」を参照してください。
- 名前空間を作成する前に、
-
ネームスペースが確実に作成されるようにするには、
ibmcloud cr namespace-list
コマンドを実行します。ibmcloud cr namespace-list -v
レジストリーからイメージをローカル・コンピューターにプルする
-
Docker または任意のツール (Podman など) をインストールします。
-
Docker Engine CLIをインストールする。
WindowsmacOS Windows® 8、または X Yosemite 以前の場合は、代わりに macOS 10.10.xDocker Desktop をインストールしてください。
IBM Cloud Container Registry でサポートされている Docker のバージョンについては、 Docker のサポートを 参照のこと。
-
インストール Podman.
-
-
イメージをローカル・コンピューターにダウンロード (プル) します。
SOURCE_IMAGE
をイメージのリポジトリーに置き換え、TAG
イメージに使用するタグ (例:latest
) に置き換えます。 例えば、使用しているツールに応じて、以下のいずれかのコマンドを実行します。-
Docker を使用している場合は、以下のコマンドを実行します。
docker pull SOURCE_IMAGE:TAG
例えば、
SOURCE_IMAGE
はhello-world
、TAG
はlatest
です。docker pull hello-world:latest
Docker イメージをプルしようとしたときに問題が発生した場合は、 「Docker イメージをプッシュまたはプルできません 」を参照してください。
latest
タグを使用して最新のイメージをプルできない場合は、latest
タグを使用して最新のイメージをプルできないのはなぜですか? を参考にしてください。 -
Podman を使用している場合は、以下のコマンドを実行します。
podman pull SOURCE_IMAGE:TAG
例えば、
SOURCE_IMAGE
はhello-world
、TAG
はlatest
です。podman pull hello-world:latest
-
イメージにタグ付けします
イメージにタグを付けるには、SOURCE_IMAGE
をリポジトリーに置き換え、TAG
を先ほどプルしたローカル・イメージのタグに置き換えます。 REGION
を リージョンの名前に置き換えます。 MY_NAMESPACE
を、名前空間のセットアップで作成した名前空間に置き換えます。 NEW_IMAGE_REPO
を画像リポジトリの名前に、 NEW_TAG
をタグに置き換えて、ネームスペースで使用する画像のリポジトリとタグを定義します。 例えば、使用しているツールに応じて、以下のいずれかのコマンドを実行します。
リージョンの名前を見つけるには、ibmcloud cr region
コマンドを実行します。
-
Docker を使用している場合は、以下のコマンドを実行します。
docker tag SOURCE_IMAGE:TAG REGION.icr.io/MY_NAMESPACE/NEW_IMAGE_REPO:NEW_TAG
例えば、
SOURCE_IMAGE
はhello-world
、TAG
はlatest
、REGION
はuk
、MY_NAMESPACE
はnamespace1
、NEW_IMAGE_REPO
はhw_repo
、NEW_TAG
は1
です。docker tag hello-world:latest uk.icr.io/namespace1/hw_repo:1
-
Podman を使用している場合は、以下のコマンドを実行します。
podman tag SOURCE_IMAGE:TAG REGION.icr.io/MY_NAMESPACE/NEW_IMAGE_REPO:NEW_TAG
例えば、
SOURCE_IMAGE
はhello-world
、TAG
はlatest
、REGION
はuk
、MY_NAMESPACE
はnamespace1
、NEW_IMAGE_REPO
はhw_repo
、NEW_TAG
は1
です。podman tag hello-world:latest uk.icr.io/namespace1/hw_repo:1
名前空間へイメージをプッシュします。
-
以下のいずれかのオプションを使用して、IBM Cloud Container Registry にログインします。
-
Docker を使用してログインするには、
ibmcloud cr login
コマンドを実行して、ローカル Docker デーモンを IBM Cloud Container Registry にログインさせます。ibmcloud cr login --client docker
-
Podman を使用してログインするには、
ibmcloud cr login
コマンドを実行して IBM Cloud Container Registry にログインします。ibmcloud cr login --client podman
-
他のクライアントを使用してログインするには、対話式に名前空間にアクセスするを参照してください。
ログインに問題がある場合は、Container Registry にログインできないのはなぜですか? を参考にしてください。
-
-
イメージを名前空間にアップロード (プッシュ) します。
MY_NAMESPACE
を、名前空間のセットアップで作成した名前空間に置き換えます。IMAGE_REPO
およびTAG
を、イメージにタグ付けしたときに選択したイメージのリポジトリーとタグに置き換えます。 例えば、使用しているツールに応じて、以下のいずれかのコマンドを実行します。-
Docker を使用している場合は、以下のコマンドを実行します。
docker push REGION.icr.io/MY_NAMESPACE/IMAGE_REPO:TAG
例えば、
REGION
はuk
、MY_NAMESPACE
はnamespace1
、IMAGE_REPO
はhw_repo
、TAG
は1
です。docker push uk.icr.io/namespace1/hw_repo:1
Docker イメージをプッシュしようとしたときに問題が発生した場合は、 「Docker イメージをプッシュまたはプルできません 」を参照してください。
-
Podman を使用している場合は、以下のコマンドを実行します。
podman push REGION.icr.io/MY_NAMESPACE/IMAGE_REPO:TAG
例えば、
REGION
はuk
、MY_NAMESPACE
はnamespace1
、IMAGE_REPO
はhw_repo
、TAG
は1
です。podman push uk.icr.io/namespace1/hw_repo:1
-
イメージがプッシュされたことを確認します。
次のコマンドを実行して、イメージが正常にプッシュされたことを確認します。
ibmcloud cr image-list
IBM Cloud Container Registry で名前空間をセットアップし、最初のイメージを名前空間にプッシュしました。
の変更の監査証跡を設定する。 Container Registry
Container Registry の各アクティブリージョンからアクティビティイベントをキャプチャすることで、 Container Registry の変更の監査証跡を作成します。 これらのアクティビティ・イベントは、 IBM Cloud Logs のインスタンスで作成します。
監査証跡を設定するには、以下の手順を実行する:
- IBM Cloud Logs を設定します。 IBM Cloud Logs の使用開始を 参照してください。
- IBM Cloud Activity Tracker Event Routing を設定します。 IBM Cloud Activity Tracker Event Routing の使用開始を 参照してください。
- IBM Cloud Logs IBM Cloud Logs インスタンスをターゲットとして設定するを 参照。
ロギングの詳細については、 IBM Cloud Logs および Container Registry のロギングについてを 参照してください。
アクティビティ・イベントの詳細については、 IBM Cloud Activity Tracker Event Routing および Container Registry のアクティビティ・トラッキング・イベントについてを 参照してください。
のメトリクスを監視する。 Container Registry
モニタリングするリージョンに Monitoring インスタンスを作成し、そのインスタンスのプラットフォーム・メトリックを有効にすることができます。 あるいは、そのリージョンの既存の Monitoring インスタンスでプラットフォーム・メトリックを有効にすることもできます。
メトリックの設定の詳細については、 Container Registry のメトリックの有効化」 および Monitoring の使用開始」を 参照してください。