Podman Desktopはアプリケーション開発者向けのコンテナ実行環境とKubernetesを提供するソフトウェアです。WindowsとmacOS、Linuxに対応しているようです。 現在は0.0.6が最新のバージョンです。
Docker Desktop有料化からおおよそ一年が経ち、同様のソフトウェアが増えてきましたね(Rancher desktop、Container Desktop、ちょっと用途が異なりますが、Multipassなど)。OSSのDockerやDocker Desktopを含めてどれも好きなんですが、今の所私のお気に入りはRancher Desktopですね。
Multipassはコマンドでなにか操作するようなときにVMを作って、その中で操作しています。Ubuntuのsnapパッケージについては議論があるのは知っていますが、少なくともサーバー分野では非常に便利だと私は感じています。
Podman Desktopのインストール
Windows版はインストーラーをダウンロードしてインストールする形、Linux版はzipパッケージかFlatpakを使ってインストールする形のようです(事前にPodmanエンジンの導入が必要)。 macOSについてはHomebrewを使ったインストール、LinuxについてはFlatpakを使ったインストールもできるようです。
macOSの場合は次の順でセットアップがそれぞれ必要のようです。
brew install podman
で、まずPodmanをインストールpodman machine init
で、Podmanを初期化(初期コンフィグレーション、VMのダウンロードなど)podman machine start
で、Podmanを実行する仮想マシンを起動
あとはPodman Desktopをインストールするだけなのですが、DockerのようにDocker API socketを使いたい場合はつぎのように実行するようにと表示されます。今回はこれは行いません。
sudo /opt/homebrew/Cellar/podman/4.2.0/bin/podman-mac-helper install podman machine stop; podman machine start
ここまで終わったら、Podman Desktopをインストールします。dmgパッケージを使ったインストールも可能ですが、PodmanエンジンをHomebrewでインストールしましたし、Podman DesktopもHomebrewからでいいと思います。
brew install podman-desktop
で、Podman Desktopをインストール
仮想マシンではコンパクトなLinuxが実行されます(macOSの場合はQEMUベースでFedora CoreOSが動くようです)。その上でPodmanが実行されます。
Podman Desktopを触る
インストールしたPodman Desktopを実行してみます。 一番最初の画面がこれです。Podmanのバージョンが表示されています。
Podman Desktopの現在のバージョン(v0.0.6)では、Podmanコンテナの管理、コンテナイメージの管理とビルド機能くらいしかありませんが、VSCodeでコンテナでアプリケーションの開発を支援する機能、Kubernetesの構築と管理、ボリュームマネージメント、Docker Composeのサポート、Kindのサポートなど 様々機能追加を予定しているようです。ドキュメント整備も今後されていくようです。これからが楽しみなプロジェクトです。
PodmanをCLIで触る
ターミナルを開いてpodmanコマンドを使ったコンテナ作成などはDocker Likeに利用可能です。 CLIでの操作性についてはWindowsでもmacOSでも、Linuxでも変わらないようです。
今後VSCode連携とか機能が載ってくれば、開発の現場でPodmanも使いやすくなるのではないかと思います。
Podman Desktopのロードマップ
Podman Desktopのロードマップはここにまとめられています。色々機能強化が予定されていることがわかります。
Podman Desktopのアンインストール
もしPodman Desktopが不要になった場合は、つぎのように実行することでアンインストールできます。
私が試した時点ではpodman
とpodman-desktop
のインストールに次のコンポーネントが追加インストールされました。Podman Desktopをアンインストール後にそれらも不要な場合は、つぎのように実行することですべて削除できます(別のソフトウェアで利用しているコンポーネントがあるかもしれません。アンインストール時はご注意ください)。
$ brew uninstall podman podman-desktop qemu lz4 xz vde snappy pixman lzo libusb libssh libslirp libpng jpeg-turbo gnutls unbound p11-kit nettle libtasn1 libidn2 guile readline pkg-config libunistring libtool m4 bdw-gc gmp glib pcre gettext
また、~/.local/share/containers/podman/
以下にキャッシュが置かれるようなので、これも不要であれば削除します。