はじめに
本記事ではタイトルの通り、「Podman Desktopを使ってコンテナイメージをIBM CloudのコンテナレジストリにPUSHする」手順を紹介します。
一部コマンド実行が必要になりますが、ほぼコピー&ペーストで実施できます。
筆者はMacで実行していますが、Windowsでもコマンドはそのまま利用可能です。
コンテナレジストリの作成
はじめにPUSH先のコンテナレジストリの準備をします。
IBM Cloudにログインし、左上のナビゲーションメニューを選択し、[Container Registry] > [名前空間]をクリックします。
Container Registryのサービスが未作成の場合は作成をしてください。
動作確認はライトプランで実施しています。
今回はpodman-desktop-sampleという名前空間を使用します。
名前空間は一意である必要があるため、ご自身の環境で試す際は違う名前を指定し作成・使用してください。
認証情報の作成
名前空間が作成できたら、podmanコマンドでローカルのコンテナイメージをIBM CloudのコンテナレジストリにPUSHするための認証情報を準備します。
画面上部の[管理]から[アクセス(IAM)]をクリックします。
管理画面が表示されたら、[APIキー]を選択し、[作成]をクリックします。
ダイアログが表示されたら、APIキーの名前を入力して、[作成]をクリックします。
APIキーの作成が完了したら、コピーしメモ帳などに保管&ダウンロードをしましょう。
この画面を閉じると二度と中身を確認できなくなるため、忘れた場合や紛失した場合はキーを削除し、再度作成しましょう。
コンテナレジストリへのログイン
Podman DesktopでIBM Cloudのコンテナレジストリへログインをしたいところですが、執筆時点ではできないためターミナルでコマンドを実行します。
コマンドを実行し終わると、下記リストに作成した名前空間のコンテナレジストリが追加される様になります。
まずはIBM Cloud CLIが必要になるため下記コマンドを実行します。
$ ibmcloud plugin install container-registry -r 'IBM Cloud'
IBM Cloud CLIがインストールできたら、CLIでIBM Cloudにログインをします。
IBM Cloudの右上のユーザーアイコンをクリックし、[CLIとAPIにログイン]をクリックします。
ワンタイム・パスコードが表示されたら、IBM Cloud CLI に表示されているコマンドをコピーします。
このコマンドは第三者に共有しない様に注意してください。
コピーしたコマンドを実行します。
$ ibmcloud login -a https://cloud.ibm.com -u passcode -p XXXXXXXXXX
API エンドポイント: https://cloud.ibm.com
認証中です...
OK
ターゲットのアカウント XXX's Account (xxxxxxxxxxxxxxxxxxxxxxx)
リージョンを聞かれるので、jp-tok
を選択します。
リージョンを選択します (または Enter キーを押してスキップします):
1. au-syd
2. in-che
3. jp-osa
4. jp-tok
5. kr-seo
6. eu-de
7. eu-gb
8. ca-tor
9. us-south
10. us-east
11. br-sao
数値を入力してください> 4
ターゲットのリージョン jp-tok
無事にログインができたら下記情報が表示されます。
API エンドポイント: https://cloud.ibm.com
Region: jp-tok
ユーザー: xxx@xxx.com
アカウント: XXX's Account (xxxxxxxxxxxxxxxxxxxxxxx)
リソース・グループ: リソース・グループがターゲットになっていません。'ibmcloud target -g RESOURCE_GROUP' を使用してください
CF API エンドポイント:
組織:
スペース:
最後に先ほど作成したAPIキーを使って、PodmanでIBM Cloudのコンテナレジストリにログインをします。
①にはiamapikey、②には控えておいたAPIキーを入力します。
$ podman login jp.icr.io
Username: ①
Password: ②(入力内容は画面には表示されません)
Login Succeeded!
ログインができたので、Podman DesktopのRegistriesに表示されているか確認してみましょう。
右下の[歯車マーク] > [Registries]をクリックします。
Podman Desktopでもレジストリが表示されました。
コンテナイメージをコンテナレジストリにPUSH
今回はredhat/ubi8-micro
のコンテナイメージを使って動作確認しようと思います。
まずは[Images] > [Pull an image]からイメージをPULLします。
redhat/ubi8-micro
を入力し、[Pull image]をクリックします。
自身のレジストリにPUSHするために、タグ付けをします。
タグ付けはコマンドで実行する必要があるので下記コマンドを打ちましょう。
$ podman tag イメージ jp.icr.io/{名前空間名}/{リポジトリー名}
redhat/ubi8-micro
のコンテナイメージにタグ付けをしてみた場合は下記の様になります。
$ podman tag redhat/ubi8-micro jp.icr.io/podman-desktop-sample/ubi8-micro
それではレジストリにPUSHしましょう。
ImagesにてPUSHしたいイメージのACTIONSの3点リーダーをクリックし、[Push image]をクリックします。
タグに紐づくイメージが選択できるので、jp.icr.io/podman-desktop-sample/ubi8-micro
を選択し、[Push image]をクリックします。
PUSHできました。
[Done]をクリックして閉じておきましょう。
最後にIBM Cloudのコンテナレジストリを確認してみましょう。
PUSHしたイメージが確認できました、以上で終了です。