0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Podmanの環境をWindows11に作ろうとして初心者がはまった点

0
Posted at

はじめに

Software Design 2026年2月号から始まった連載記事「Podmanで実践 AI駆動開発のためのコンテナ環境構築入門」を読んで、その内容に沿ってやってみることにしました。

私は開発経験が少なく、AI開発も未経験。dockerも意味を理解せずただコマンドを入力して使っていただけ。
記事を読んで、入門にちょうどよさそうと思ったのでした。

しかし実際に環境を作ってみて、理解不足のために勘違いをしていろいろと余計なことをしてしまったので、もし同様の人がいたら役に立つかと思い記録しておきます。

Podman Desktopの導入

p.119からの手順に従ってPodman Desktopを導入してみることに。

自分の環境は、Windows11です。

①Podman Desktopのインストール

公式サイトからインストーラをダウンロードし、実行しました。
https://podman-desktop.io/

インストールオプションでは「現在のユーザのみにインストールする」を選択しました。

②Podman CLIのインストール

Podman Desktopを起動するとメッセージが表示されるのは記事の通り。そのまま流れでPodman CLIもインストールします。

スクリーンショット 2026-01-29 132453.png

スクリーンショット 2026-01-29 132511.png

WSL(デフォルト)を選択します。

スクリーンショット 2026-01-29 132532.png

インストールされたみたいです。

スクリーンショット 2026-01-29 132610.png

ここで、私はちょっと勘違いをしていました。

③Podman machineの作成

Podman Desktopの表示に従い、「Next」ボタンを押していくと、Podman machineを作成するよう促されます。

スクリーンショット 2026-01-29 132645.png

スクリーンショット 2026-01-29 132705.png

記事の画面と内容が違いますが、「Machine with root privillage」がデフォルトで有効になっているので、記事に従いオフにし、「Create」ボタンをクリック。

スクリーンショット 2026-01-29 133124.png

しばらく待つと、画面が変わります。

記事にはこの後の設定については記述がないのですが、画面に従って「Next」を押し続けて行ったらkubectlとcomposeのインストールもやってしまいました。良かったのかどうかはわかりません…

動作確認ではまる

p.120の手順に従い、動作確認を行おうとしました。

Podman machineの起動が完了したら、ターミナルを開き、次のコマンドでコンテナを起動しましょう。

ということなので、Windows Terminalから、wsl(Ubuntu) で下記コマンドを入力しました。

podman run --rm quay.io/podman/hello

ところが。podmanというコマンドがないのです。

Powershellの方からはコマンドが実行できました。
CLIのインストールの時になにか手順を間違ったのでは?

勘違いの正体

ChatGPTに聞いたりしていろいろ調べてたところ理由がわかりました。
これは正常で当たり前の挙動でした。
Podman machineのところでwslを選択したのは、wslで独自のディストリビューションとしてpodman-machine-defaultが動作しているということでした。Ubuntuは関係なかったです。

Powershellでこのように確認できます。

C:\Users\satok>wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定値)
podman-machine-default

Podman Desktopで指示に従ってインストールされたPodman CLIはWindowsで動作するpodman.exeだけ、なのでした。

C:\Users\satok>where podman
C:\Users\satok\AppData\Local\Programs\Podman\podman.exe

やだ恥ずかしい。Ubuntuから使えるものだとばかり…
では、Ubuntuからpodmanコマンドを使ってPodman machineに接続するには?
別の手順が必要なのでした。

UbuntuからPodman Desktopで作成したPodman machineにアクセスするには

公式ドキュメントに手順がありましたのでそのとおり実行しました。

Accessing Podman from another WSL distribution

冒頭に、WindowsのPodman CLIは設定するけど他のwslディストリビューションの設定はしませんってちゃんと書いてました。

On Windows, Podman Desktop creates a Windows Subsystem for Linux (WSL) virtual machine: the Podman Machine. It also configures the Windows Podman client to communicate with the Podman Machine. However, it does not configure your other WSL distributions.

手順は、下記のとおりです。
Ubuntuで、まずPodmanのバイナリをダウンロードして/usr/local/binにインストールします。最新バージョンがこの時点では5.7.1でした。

$ wget https://github.com/containers/podman/releases/download/v5.7.1/podman-remote-static-linux_amd64.tar.gz
$ sudo tar -C /usr/local -xzf podman-remote-static-linux_amd64.tar.gz

下記を実行してpodmanコマンドを使えるようにします。

$ export PATH="$PATH:/usr/local/bin"
$ alias podman='podman-remote-static-linux_amd64'

また、.bashrcに下記を追加します。

export PATH="$PATH:/usr/local/bin"
alias podman='podman-remote-static-linux_amd64'

次に、Podman Desktopで作成したpodman-machine-defaultに接続する設定をしていくのですが、rootlessで作成したので公式ドキュメントに書いてあるコマンドと接続先のソケットが違います。(公式ドキュメントに注釈もあります)

$ podman system connection add --default podman-machine-default unix:///mnt/wsl/podman-sockets/podman-machine-default/podman-user.sock

uucp groupに現在のユーザを追加します。

$ sudo usermod --append --groups 10 $(whoami)

一旦シェルを抜けて、また入りなおして、確認します。

$ podman system connection list
Name                         URI                                                                     Identity    Default     ReadWrite
podman-machine-default       unix:///mnt/wsl/podman-sockets/podman-machine-default/podman-user.sock              true        true
podman-machine-default-root  unix:///mnt/wsl/podman-sockets/podman-machine-default/podman-root.sock              false       true
$ podman version
Client:       Podman Engine
Version:      5.7.1
API Version:  5.7.1
Go Version:   go1.25.5
Git Commit:   f845d14e941889ba4c071f35233d09b29d363c75
Built:        Wed Dec 10 23:56:21 2025
OS/Arch:      linux/amd64

Server:       Podman Engine
Version:      5.7.1
API Version:  5.7.1
Go Version:   go1.25.4 X:nodwarf5
Git Commit:   f845d14e941889ba4c071f35233d09b29d363c75
Built:        Tue Dec  9 09:00:00 2025
OS/Arch:      linux/amd64

では、もう一度動作確認をやってみます。

$ podman run --rm quay.io/podman/hello
!... Hello Podman World ...!

         .--"--.
       / -     - \
      / (O)   (O) \
   ~~~| -=(,Y,)=- |
    .---. /`  \   |~~
 ~/  o  o \~~~~.----. ~~
  | =(X)= |~  / (O (O) \
   ~~~~~~~  ~| =(Y_)=-  |
  ~~~~    ~~~|   U      |~~

Project:   https://github.com/containers/podman
Website:   https://podman.io
Desktop:   https://podman-desktop.io
Documents: https://docs.podman.io
YouTube:   https://youtube.com/@Podman
X/Twitter: @Podman_io
Mastodon:  @Podman_io@fosstodon.org

うまく動いたみたいです。
このhelloのimageをpodman rmiで消して、またpodman runを実行して入れたりして、Podman Desktopのimagesタブの内容と一致しているのを確認しました。

$ podman images
REPOSITORY            TAG         IMAGE ID      CREATED        SIZE
quay.io/podman/hello  latest      5dd467fce50b  20 months ago  787 kB

スクリーンショット 2026-02-02 145925.png

これで大丈夫かな?

おわりに

Podman Desktopと、Podman machineとPodman CLIの関係の理解にちょっと時間がかかりました。今も完全に理解できているか自信がないですが。
連載の次回も試してみます!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?