podman for windows
Section 4 Podman Desktop
概要
podman をコマンドラインからではなく、GUI で操作できるというもの。
Docker Desktop の podman 版と言えばわかる人はわかるでしょう。
インストール
公式サイトからダウンロードしてインストールしてください。
- Podman Desktop https://podman-desktop.io/
この時点(2023 年 10 月)では、version v1.4.0、podman は version 4.6.2 を使っていきます。
インストール時点で、WSL がインストールされていなければインストールしてくれるようになったので、Section 1 の手順より、最初から 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 をやった場合は次のような画面になっていると思います。
nginx のイメージがある場合は、ゴミ箱アイコンをクリックして削除しましょう。
[Pull an image] をクリックします。
Image name に 「docker.io/library/nginx」を入力して、[Pull image] するとイメージを取得します。
Window 似も表示されていたコマンドのイメージ名を変えた podman pull docker.io/library/nginx
と同じ動作をします。
そうしたらコンテナを起動してみましょう。
コンテナ起動
イメージが取得された状態になっているので、
この中の再生ボタンをクリックします。
こうすると、コマンドラインで実行するときのオプション設定項目の入力欄が出てくるので必要な箇所を埋めていきます。 今回は Section 3 で実行した時と同じ内容になるように設定します。
name | option | 値 | 説明 |
---|---|---|---|
Container name | —name | web | コンテナの名前 |
Volumes (Path on the host) | -v, —volume path1:path2 | c:/DevWeb/Lab-WebSite/html | Windows のフォルダ |
Volumes (Path inside the container) | -v, -volume path1:path2 | /usr/share/nginx/html | コンテナ内のフォルダ |
Port mapping | -p,—publish | 8080 | コンテナのポートと Windows 内のポートを紐づける |
Advance 内に、—rm(終了したらコンテナを破棄する)オプションのチェックもありますが、これは無効のままにします。
入力出来たら[Start Container]をクリックして起動させます。 旨く行けば自動的に、コンテナ管理の方に移動します。
これで、http://localhost:8080 にアクセスすれば、html に書いた内容が表示されます。
いろいろな機能
作成されたコンテナの行をクリックすると詳細に遷移します。
Logsはコマンドラインで実行した時に表示される内容と同じものです。Summary、Inspectはあまり見ないと思うので放置。イメージを作成する場合のデバックで使うくらいか?
Kubeは kubernetes 等で使う構築のための設定ファイル。これをエクスポートしておいて、保管しておけば、同じコンテナを作ってくれます。これの使い方は別途。
Terminalは、コンテナ内に入って作業するためのものです。podman exec -i -t CONTAINER_ID /bin/bash
と打たなくても入れます。
まとめ
まずは簡単な使い方から。次は、Dockerfile や Containerfile を使うのをやってみます。