公開日:2022/10/22 0:00:00

podman for windows

Section 4 Podman Desktop

概要

podman をコマンドラインからではなく、GUI で操作できるというもの。
Docker Desktop の podman 版と言えばわかる人はわかるでしょう。

インストール

公式サイトからダウンロードしてインストールしてください。

この時点(2023 年 10 月)では、version v1.4.0、podman は version 4.6.2 を使っていきます。

インストール時点で、WSL がインストールされていなければインストールしてくれるようになったので、Section 1 の手順より、最初から Podman Desktop をインストールする方が簡単かもしれません。

起動

Podman Desktop のアイコンから起動してください。

Podman Desktop

サイドバーアイコンは上から

  • ダッシュボード
  • コンテナ管理
  • Pods 管理
  • コンテナイメージ管理
  • Volume 管理

となっています。

とりあえず、コンテナを操作していきましょう。

ここでは、イメージ検索、イメージ取得、コンテナ起動という順序で説明していきます。

イメージ検索

Podman は、Docker Hub、Red Hat Quay、GitHub Packages、Google Container Registry から取ってくる事ができるようです。 設定画面から、Registries(レジストリ)の設定画面にありますが、[Configure]から username、password を入れると、個人的に管理しているものからも取得できるようになっています。

とりあえず、Docker Hub 内で nginx を検索して存在を確認します。

https://hub.docker.com/_/nginx

url やdocker pull nginx という表記から取得する名称を作ります。

  • docker から持ってくるので docker.io
  • 公式ビルドされたものは library にあるのでそれを使う
  • nginx というイメージ

という事で繋げて docker.io/library/nginx としてください。これを取得の際に使います。

サイトから探すのはなぁ……という場合はコマンドラインから検索を実行します。

PS> podman search nginx
NAME                                                       DESCRIPTION
docker.io/library/nginx                                    Official build of Nginx.
docker.io/library/unit                                     Official build of NGINX Unit: Universal Web...
docker.io/nginxinc/nginx-unprivileged                      Unprivileged NGINX Dockerfiles
(略)

いろいろな人が公開していたりするので、目的に合わせて選んでください。今回は、一番上を選ぶことになります。

一応、search コマンドは、イメージの存在を判断する信頼できる方法では無いので、検索に引っかかってきた後にウェブサイトで確認して、ちゃんとしたところが作っているかはチェックしたほうが良いでしょう。 なにせ、image 作成の中にさらっとウィルスや悪さをするサービスが入ってたら大変なことになるので。

イメージ取得

Images のアイコンをクリックして、コンテナイメージ管理に入ります。Section 3 をやった場合は次のような画面になっていると思います。

Images - Podman Desktop

nginx のイメージがある場合は、ゴミ箱アイコンをクリックして削除しましょう。

[Pull an image] をクリックします。

Pull Image From a Registry

Image name に 「docker.io/library/nginx」を入力して、[Pull image] するとイメージを取得します。 Window 似も表示されていたコマンドのイメージ名を変えた podman pull docker.io/library/nginx と同じ動作をします。

Done Pull Image From a Registry

そうしたらコンテナを起動してみましょう。

コンテナ起動

イメージが取得された状態になっているので、

Images - Podman Desktop

この中の再生ボタンをクリックします。

Create a coantiner from image docker.io/library/nginx:latest - Podman Desktop

こうすると、コマンドラインで実行するときのオプション設定項目の入力欄が出てくるので必要な箇所を埋めていきます。 今回は Section 3 で実行した時と同じ内容になるように設定します。

nameoption説明
Container name—namewebコンテナの名前
Volumes (Path on the host)-v, —volume path1:path2c:/DevWeb/Lab-WebSite/htmlWindows のフォルダ
Volumes (Path inside the container)-v, -volume path1:path2/usr/share/nginx/htmlコンテナ内のフォルダ
Port mapping-p,—publish8080コンテナのポートと Windows 内のポートを紐づける

Advance 内に、—rm(終了したらコンテナを破棄する)オプションのチェックもありますが、これは無効のままにします。

Create a coantiner from image docker.io/library/nginx:latest - Podman Desktop

入力出来たら[Start Container]をクリックして起動させます。 旨く行けば自動的に、コンテナ管理の方に移動します。

Images - Podman Desktop

これで、http://localhost:8080 にアクセスすれば、html に書いた内容が表示されます。

いろいろな機能

作成されたコンテナの行をクリックすると詳細に遷移します。

Logsはコマンドラインで実行した時に表示される内容と同じものです。SummaryInspectはあまり見ないと思うので放置。イメージを作成する場合のデバックで使うくらいか? Kubeは kubernetes 等で使う構築のための設定ファイル。これをエクスポートしておいて、保管しておけば、同じコンテナを作ってくれます。これの使い方は別途。 Terminalは、コンテナ内に入って作業するためのものです。podman exec -i -t CONTAINER_ID /bin/bash と打たなくても入れます。

まとめ

まずは簡単な使い方から。次は、Dockerfile や Containerfile を使うのをやってみます。