Skip to content

IBMDeveloperTokyo/podman_desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Podman Desktopを触ってみよう!

Podman Desktopを使って、コンテナの基本操作を学べます。
※一部操作はCLIでの実施となります。
最後に作成したコンテナイメージを自身のIBM CloudのコンテナレジストリーにPUSHします。

免責

本ハンズオンではIBM Cloudの無料枠を利用します。
こちらに記載の手順に従ってお試し頂く中では課金は一切発生いたしません。
ですが、有償プランでサービスを作成した場合は課金が発生いたします。
万が一、ご自身のIBM Cloudアカウントに対して有償サービスを作成するなどして課金が発生した場合、IBM及び本ハンズオンの講師は責任を負いかねますので、十分ご注意の上実施下さい。

事前準備

  1. Podman Desktopのインストール
  2. IBM Cloudのアカウント
    • IBM Cloudのコンテナレジストリー以外を利用する場合は、一部手順を読み替えて実施ください。
  3. Dockerfileのダウンロード
    • 本リポジトリを任意のディレクトリにダウンロードしてください。
  4. jboss-eap-6.4.0.zipのダウンロード
    1. Red Hat Customer Portal にログインします。(※アカウントをお持ちでない方は、アカウント作成が必要となります)
    2. Downloads をクリックします。
    3. Product Downloads リストから Red Hat JBoss Enterprise Application Platform をクリックします。
    4. Version6.4 を選択します。
    5. Releases タブにある Red Hat JBoss Enterprise Application Platform 6.4.0Download をクリックします。
    6. ダウンロードしたjboss-eap-6.4.0.zipをDockerfileと同じディレクトリに格納します。

イメージのPULL

まずはコンテナの元となるイメージをPULLします。 左側にあります、メニューバーから Images をクリックします。(図①) Images画面表示後、画面上部にあります Pull an image をクリックします。(図②) image.png

Image to Pull にPULLしたいイメージを入力します。(図①) image.png

今回はサンプルにありました、redhat/ubi8-microを入力します。 その後、下部にあります Pull image をクリックします。(図①) image.png

イメージのPULLが開始されると Pull image 下部に実行状況が出力されます。 PULLが完了すると Pull image から Done に変わるので、 Done をクリックします。(図①) pull_image_004.png

Images画面に戻ると、イメージがPULLされたことを確認できます。(図①) pull_image_005.png

CLIで同様の処理を行う場合は下記のコマンドを実行する必要があります。

podman pull redhat/ubi8-micro

イメージの削除

イメージを削除する方法は以下の3つとなります。

  1. 個別削除
  2. 選択削除
  3. 全削除(※未実行イメージのみ)

1. 個別削除

イメージの右側にある ゴミ箱アイコン をクリックすると、該当イメージを削除できます。(図①) rmi_001.png

CLIで同様の処理を行う場合は下記のコマンドを実行する必要があります。

podman rmi docker.io/redhat/ubi8-micro

2. 選択削除

削除したいイメージの左側にある チェックボックスにチェック をし(図①)、検索テキストボックス右側に表示される ゴミ箱アイコン をクリックすると、選択したイメージを削除できます。(図①) rmi_002.png

CLIで同様の処理を行う場合は下記のコマンドを実行する必要があります。

podman rmi registry.access.redhat.com/ubi7 docker.io/library/my-custom-image

3. 全削除(※未実行イメージのみ)

Images画面右上部にある Prune images をクリックします。(図①) rmi_003.png

CLIで同様の処理を行う場合は下記のコマンドを実行する必要があります。

podman rmi -a

確認メッセージが表示されるので Yes をクリックすると、全ての未実行イメージを削除できます。(図①) rmi_004.png

イメージのビルド

イメージはPULLするだけでなく、Containerfile(Dockerfile)を使用してビルドすることもできます。

Images画面右上部にある Build an image をクリックします。(図①) build_001.png

Containerfile pathをクリックするとファイル選択画面が表示されるので、ビルド対象のContainerfileを選択します。(図①) build_002.png

Containerfileを選択すると、 Build context directory にContainerfileのパスが自動でセットされます。 変更したい場合は Build context directoryをクリックするとディレクトリ選択画面が表示されるので、ビルドコンテキストディレクトリを選択します。(図①) Image Nameには新しいイメージ名を入力します。(図②) 各種入力後、 Build をクリックすると、ビルドが開始されます。(図③) build_003.png

ビルドが開始されると実行状況が出力されます。 ビルドが完了すると Done が表示されるので、 Done をクリックします。(図①) build_004.png

Images画面に戻ると、イメージがビルドされたことを確認できます。(図①) build_005.png

CLIで同様の処理を行う場合は下記のコマンドを実行する必要があります。

podman build -t my-custom-image -f C:\Dojo\20230526\Dockerfile C:\Dojo\20230526

コンテナRUN

イメージを使ってコンテナを起動します。

コンテナ起動したいイメージの右側にある 再生アイコン をクリックします。(図①) run_001.png

コンテナ起動に必要な構成情報を設定します。

Container name にコンテナ名を入力します。(図①) run_002.png

コンテナからホストPCのディレクトリにアクセスできるようにしたい場合、 VolumesPath on the host にホストPCのディレクトリ(図①)を、 Path inside the containerにコンテナのディレクトリを入力します(図②) Path on the host については右側にある ディレクトリアイコン をクリックすると、ディレクトリ選択画面が表示され、GUIによるディレクトリの選択が可能です。 追加で設定を行いたい場合、右側にある +アイコン をクリックすると追加設定用の入力欄が表示されます。(図③) run_003.png

Port mapping には設定が必要なポートが表示されるので、該当するホストPCのポート番号を入力します。(図①) 追加でポートの設定を行いたい場合、 Add custom port mapping をクリックすると追加設定用の入力欄が表示されます。(図②) run_004.png

環境変数を設定する場合はEnvironment variablesName に環境変数名(図①)、 Value に値を入力します。(図②) run_005.png

必要に応じて、その他のタブの設定も行います。

構成情報の設定が完了したら、 Start Container をクリックします。(図①) run_006.png

Containers画面が表示され、時間経過とともにコンテナが起動されたことを確認できます。(図①) run_007.png

コンテナ名をクリックして、コンテナの詳細を確認してみます。 Inspectタブ をクリックすると、該当コンテナのyamlを確認することができます。 run_008.png

35行目等で Container name (図①)、45行目等で Volumes (図②)の入力内容を確認することができます。 run_009.png

53~72行目等で Port mapping の入力内容を確認することができます。(図①) run_010.png

195行目等で Environment variables の入力内容を確認することができます。(図①) run_011.png

Webブラウザからもコンテナが起動されたことを確認してみます。 http://localhost:8080 を開くと"JBoss EAP 6"のTOPページが表示されます。 run_012.png

CLIで同様の処理を行う場合は下記のコマンドを実行する必要があります。

podman run -d --name dojo20230526 -v C:\Dojo\20230526:/usr/dojo20230526 -p 8080:8080 -p 9990:9990 -p 9999:9999 -e ENV_NAME=test docker.io/library/my-custom-image:latest

コンテナレジストリの準備

IBM Cloudにログインし、左上のナビゲーションメニューを選択し、[Container Registry] > [名前空間]をクリックします。
cr_001.png

Note
Container Registryのサービスが未作成の場合は作成をしてください。
動作確認はライトプランで実施しています。

ロケーションは 東京 を指定し、[作成]をクリックします。
cr_002.png

名前を入力し、[作成]をクリックします。
cr_003.png

Note
今回はpodman-desktop-sampleという名前空間を使用します。
名前空間は一意である必要があるため、ご自身の環境で試す際は違う名前を指定し作成・使用してください。

認証情報の作成

名前空間が作成できたら、podmanコマンドでローカルのコンテナイメージをIBM CloudのコンテナレジストリにPUSHするための認証情報を準備します。

画面上部の[管理]から[アクセス(IAM)]をクリックします。
cr_004.png

管理画面が表示されたら、[APIキー]を選択し、[作成]をクリックします。
cr_005.png

ダイアログが表示されたら、APIキーの名前を入力して、[作成]をクリックします。
cr_006.png

APIキーの作成が完了したら、コピーしメモ帳などに保管&ダウンロードをしましょう。
cr_007.png

Warning
この画面を閉じると二度と中身を確認できなくなるため、忘れた場合や紛失した場合はキーを削除し、再度作成しましょう。

コンテナレジストリへのログイン

Podman DesktopでIBM Cloudのコンテナレジストリへログインをしたいところですが、執筆時点ではできないためターミナルでコマンドを実行します。
コマンドを実行し終わると、下記リストに作成した名前空間のコンテナレジストリが追加される様になります。
cr_008.png

まずはIBM Cloud CLIが必要になるため下記コマンドを実行します。

$ ibmcloud plugin install container-registry -r 'IBM Cloud'

IBM Cloud CLIがインストールできたら、CLIでIBM Cloudにログインをします。
IBM Cloudの右上のユーザーアイコンをクリックし、[CLIとAPIにログイン]をクリックします。
cr_009.png

ワンタイム・パスコードが表示されたら、IBM Cloud CLI に表示されているコマンドをコピーします。
cr_010.png

Warning このコマンドは第三者に共有しない様に注意してください。

コピーしたコマンドを実行します。

$ 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
ユーザー:                [email protected]
アカウント:              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]をクリックします。
cr_011.png
Podman Desktopでもレジストリが表示されました。

コンテナイメージのPUSH

今回はredhat/ubi8-micro のコンテナイメージを使って動作確認しようと思います。
まずは[Images] > [Pull an image]からイメージをPULLします。
push_001.png

redhat/ubi8-microを入力し、[Pull image]をクリックします。
push_002.png

完了したら[Done]をクリックします。
push_003.png

自身のレジストリにPUSHするために、タグ付けをします。
タグ付けはコマンドで実行する必要があるので下記コマンドを打ちましょう。

$ podman tag イメージ jp.icr.io/{名前空間名}/{リポジトリー名}

redhat/ubi8-micro のコンテナイメージにタグ付けをしてみた場合は下記の様になります。

$ podman tag redhat/ubi8-micro jp.icr.io/podman-desktop-sample/ubi8-micro

タグ付けができると、GUIはこの様な状態になります。
push_004.png

それではレジストリにPUSHしましょう。
ImagesにてPUSHしたいイメージのACTIONSの3点リーダーをクリックし、[Push image]をクリックします。 push_005.png

タグに紐づくイメージが選択できるので、jp.icr.io/podman-desktop-sample/ubi8-microを選択し、[Push image]をクリックします。
push_006.png

PUSHできました。
[Done]をクリックして閉じておきましょう。
push_007.png

CLIで同様の処理を行う場合は下記のコマンドを実行する必要があります。

podman push jp.icr.io/podman-desktop-sample/ubi8-micro:latest

最後にIBM Cloudのコンテナレジストリを確認してみましょう。
push_008.png

PUSHしたイメージが確認できました、以上で終了です。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published