はじめに
2022年2月からDocker Desktopが有料(無償利用の猶予期間が終了)したことから、Docker Desktopの代替ツールが色々と登場してきました。「[Mac環境] Docker Desktopの代替として何が最適か」では、Rancher Desktopを代替ツールとしておすすめしましたが、2022年10月24日のKubeCon North Americaにおいて、Red Hat社から「Podman Desktop」が発表されました。
Podman Desktopは、デーモンレスのコンテナエンジンであるPodmanの開発者向けGUIツールです。Podmanでのコンテナの起動・停止、コンテナログの参照、コンテナイメージのビルドといった基本的な操作をGUIで可能とします。また、Kubernetes/OpenShiftへのコンテナのPodとしてのデプロイといったKubernetes/OpenShiftとの連携機能も備えます。
Podmanはメジャーなコンテナエンジンとは言えないかもしれませんが、CLIではDockerと互換であり、docker xxxx
コマンド を podman xxxx
に置き換えて動作します。
以下では、Podman Desktopをインストールし、使ってみたところをご紹介します。
前提環境
- マシン:MacBook Pro (14インチ, 2021)(M1 Max, メモリ64GBモデル)
- OS:macOS Ventura 13.0.1
- Podman Desktop 4.3.1
インストール
Podman Desktopの動作の前提としてPodmanがインストールされている必要があります。ただ、HomebrewでPodman Desktopをインストールする場合、その過程でPodmanも導入されるようです(「ようです」と書いているのは、私の環境では既にPodmanがインストール済みだったため)。
Brew will also install the Podman Engine along with the Podman Desktop application, in case you don't have it installed yet.
Podman Desktopは以下のコマンドでインストールします。
brew install podman-desktop
Macのアプリケーションとしてインストールされますので、インストール完了後は「アプリケーション」から起動するか、Spotlightなどで「Podman Desktop」と入力して起動します。
Podman Desktopが起動すると以下のような画面が表示されます。
なお、Podmanを使用したことが無い場合(Podman Desktopと一緒にPodmanをインストールした場合など)、「Initialize Podman」というトグルボタンが表示されます。Podmanでは、macOS内にLinuxのVMが必要になるため、初回利用時にそのVM環境としてPodman Machineの作成が必要となります。このトグルボタンを実行することで、Podman Machineが作成され、Podman Desktopが利用可能となります。
ただ、私が試した際は、初期化処理がいつまで経っても終了しなかったため、Podman Desktopを一度終了させ、再度起動させると、初期化処理が完了した状態になっていました。最終的に上記のスクリーンショットのように「Podman is running」と表示されていれば、Podman Desktopが使用可能となります。
Podman Desktopのコンテナ管理機能
Podman Desktopにはコンテナを管理する機能があります。画面左側のメニューの「Containers」では、マシン上のコンテナの一覧を参照することができます。また、「Create container」ボタンから、Dockerfileを指定してコンテナを作成することもできます。
起動中のコンテナを指定して、起動時に指定したポートでブラウザを開いたり、コンテナのシェルに入ったりといったことも可能です(以下の画面の「Open Browser」ボタンをクリックするとブラウザが開きます)。
コンテナのイメージを管理することも可能です。メニューの「Images」では、コンテナイメージの一覧を表示し、コンテナの起動、イメージの削除、イメージのレイヤ情報の参照ができます。
Kubernetesへのデプロイ機能
Podman Desktopでは、Kubernetesに対して簡単にデプロイする機能を備えています。
「Containers」でコンテナの一覧の中からデプロイしたいコンテナを選択し、ACTIONSから「Deploy to Kubernetes」(ロケットマークのアイコン)をクリックします。
すると、以下のようにKubernetesにデプロイするためのPodのマニフェストファイルが自動生成され、現在のコンテキストの対象のKubernetesクラスタに対してデプロイが実行できます。OpenShiftに対しては、routeの自動生成もできます。
ただし、この機能では、Podmanで稼働しているコンテナのイメージ取得元がPodのspec.containers.image
に設定されるため、ローカル端末でビルドしたコンテナイメージはデプロイできません(デプロイ対象のKubernetes/OpenShiftがイメージを取得できないため)。Docker Hubなど、デプロイ対象のKubernetes/OpenShiftがアクセスできるレジストリである必要があります。
以上のように、Podman Desktopは容易にインストールでき、基本的なコンテナ管理をGUIで実施できるという点で、Docker Desktopの代替として利用可能な選択肢の1つであると思います。
以上です。