はじめに
オフライン環境のWindowsにPodmanをインストールして動かしたい、という方向けの記事です。
なお、この記事では、WSLv2はオフラインPCにインストールされていることを前提にしています。
略語、用語の説明
- WSL: Windows Subsystem for Linux
- VM: Virtual Machine, バーチャルマシーン。WSL上で動作します。
- オフラインPC: インターネット接続のないPC
- オンラインPC: インターネット接続のあるPC
前提となる環境
- オフラインPC
- Windows 11 Pro
- WSL version2 インストール済み。
- WSL のディストリビューションは、Ubuntu 24.04を導入済み。
- オフラインPCと同等のオンラインPCがあります。
- Podman 5.8.0
- Podman Desktop 1.25.1
オフラインPCとオンラインPCとのそれぞれで作業を行います。
大まかな流れ
オンラインPCでデータを整え、オフラインPCに持ち込み設定する、というのが大きな流れです。
- PodmanとPodman Desktopのインストール
- オンラインPCでの作業: VMの書き出し
- オンラインPCでの作業: コンテナイメージの書き出し
- オフラインPCでの作業: VMの導入
- オフラインPCでの作業: コンテナイメージの導入
1. オフラインPCでの準備作業: Podman, Podman Desktopのインストール
オンラインPCでダウンロードしたインストーラーをオフラインPCに持ち込み、インストールします。
ほぼ、型通りにインストールできます。
Podmanのインストール
- Podman のサイトから、適当なインストーラーをダウンロードします。
- 途中、
WSLv2を選んで、型通りにインストールします。
Podman Desktopのインストール
Podman Desktop, Windows Downloads ページで、Installer for restricted environments: 版の中から自分のハードウェアに併せたものをダウンロードします。ここでは、x64をダウンロードしました。ファイル名は、podman-desktop-airgap-1.25.1-setup-x64.exe のような名前になります。こちらの版は、 インストールに必要なものが予め含まれているそうです。
- ウィザード内の選択は、デフォルトで問題ありません。
- 起動すると、ネットワークアクセスの許可を求められます。私は許可をクリックしました。
Podman Desktopのインストール記事 も参考にしてください。
2. オンラインPCでの作業: VMの書き出し
書き出すためのVM作成 → VMの名前と存在を確認 → VMの書き出し という手順で行います。
# PowerShellで、書き出したいVM(ここでは、myvm)を作成します。
podman machine init myvm
podman machine start myvm
# VMの名前と存在を確認
wsl -l -v
# VMを書き出します。書き出し場所とファイル名は任意。
wsl --export myvm C:\temp\podman-machine-myvm-x64.tar
作成された podman-machine-myvm-x64.tar を外部メディアなどでオフラインPCに持ち込みます。
3. オンラインPCでの作業: コンテナイメージの書き出し
コンテナイメージをローカルにpull → コンテナイメージをtar化
が基本的な流れです。
# まずは、helloのコンテナイメージをダウンロード
podman pull quay.io/podman/hello
# 次に、podmanイメージをtar化します
podman save -o hello-x64.tar quay.io/podman/hello
こうして作られたhello-x64.tarをオフラインPCに持ち込みます。
4. オフラインPCでの作業: VMの導入
ここからの作業は、Podman Desktopで行います。
Podmanの初期設定をまだ済ませていない前提です。
Dashboard → Podman needs to be set up → Autostart: Enable → Create Podman machine → Podman Setup画面
とGUI操作して進めます。
Podman Setup画面での設定
- Name: virtual-machine-myvm など、任意の名前を入力
-
Image Path (Optional): ここに、オンラインPCで作成した
podman-machine-myvm-x64.tarのPathを指定します。 - 後の設定はお好みで。
VM を導入できたかを確認する
# Powershellから、
wsl -l -v
# 別の確認方法
podman machine list
先程作成した VM の名前が表示されればOKです。
5. オフラインPCでの作業: コンテナイメージの導入
次のコマンドの通りです。
# podmanイメージをロードします
podman load -i hello-x64.tar.tar
# ロードできたかを確認します
podman images
# helloを起動してみます
podman run --rm quay.io/podman/hello
終わりに
私が最も苦労したのは、オフラインPCにVMを導入することでした。コマンドラインで導入する方法を模索していましたが、うまく行きませんでした。最終的にはPodman Desktopを利用すれば良いことに気付きました。Podman Desktopを利用せず、コマンドラインだけでVMを導入する方法をご存知の方は、教えてください。