仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

Podman Desktopを触ってみる

Podman Desktopはアプリケーション開発者向けのコンテナ実行環境とKubernetesを提供するソフトウェアです。WindowsとmacOS、Linuxに対応しているようです。 現在は0.0.6が最新のバージョンです。

podman-desktop.io

Docker Desktop有料化からおおよそ一年が経ち、同様のソフトウェアが増えてきましたね(Rancher desktopContainer Desktop、ちょっと用途が異なりますが、Multipassなど)。OSSのDockerやDocker Desktopを含めてどれも好きなんですが、今の所私のお気に入りはRancher Desktopですね。

Multipassはコマンドでなにか操作するようなときにVMを作って、その中で操作しています。Ubuntuのsnapパッケージについては議論があるのは知っていますが、少なくともサーバー分野では非常に便利だと私は感じています。

Podman Desktopのインストール

Windows版はインストーラーをダウンロードしてインストールする形、Linux版はzipパッケージかFlatpakを使ってインストールする形のようです(事前にPodmanエンジンの導入が必要)。 macOSについてはHomebrewを使ったインストール、LinuxについてはFlatpakを使ったインストールもできるようです。

podman-desktop.io

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のサポートなど 様々機能追加を予定しているようです。ドキュメント整備も今後されていくようです。これからが楽しみなプロジェクトです。

コンテナ作成はイメージからとContainerfileから作成する方法がある

イメージのPull

イメージのInspect

コンテナの作成時の名前とポートの設定

コンテナ一覧

コンテナログの表示

コンテナシェルへのアクセス

ブラウザーでコンテナアプリケーションを表示

イメージ一覧からはコンテナ作成、削除、イメージ情報の表示が可能

PodmanをCLIで触る

ターミナルを開いてpodmanコマンドを使ったコンテナ作成などはDocker Likeに利用可能です。 CLIでの操作性についてはWindowsでもmacOSでも、Linuxでも変わらないようです。

今後VSCode連携とか機能が載ってくれば、開発の現場でPodmanも使いやすくなるのではないかと思います。

Podman Desktopのロードマップ

Podman Desktopのロードマップはここにまとめられています。色々機能強化が予定されていることがわかります。

Podman Desktopのアンインストール

もしPodman Desktopが不要になった場合は、つぎのように実行することでアンインストールできます。

私が試した時点ではpodmanpodman-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/以下にキャッシュが置かれるようなので、これも不要であれば削除します。