はじめに
GoQSystemでは開発・本番環境問わず多くのプロジェクトでDockerを利用しています。
2022年2月からDocker Desktopが有料サービスになりました。(※2021年9月に有料化が開始され、無料で使える猶予期間が終了しました。)
弊社は有料となる条件に該当しないため、無料で使い続けることができていますが、無料・有料に関わらず事業として開発を行なっている以上は代替案を持っておくべきだと思うので、今回はPodman Desktopを試していこうと思います。
※ 都合上、使用している画像の一部を隠しています。
Podman Desktopとは
RedHat社から2022年10月に発表されました。
Podman上で起動しているContainerおよびPodをGUIから操作できることを目的としています。
PodmanはDocker互換のコンテナエンジンです。
Docker互換ではあるものの、Podmanという名前から分かるようにDockerというよりもKubernetesよりな気がします。
参考にした記事
実行環境
マシン:MacBook Pro (13インチ, 2020)(Apple M1, メモリ16GBモデル)
OS:macOS Ventura 13.0.1
インストール
公式サイトからインストールするか、brew
でインストールすることができます。
今回はbrewでインストールを行いました。
brew install podman-desktop
Podman Desktopを使用するにはPodmanがインストールされていることがMUSTなようですが、以下の結果からpodman-desktop
をインストールする過程でpodman
もインストールされていることがわかります。
==> Fetching podman
==> Downloading https://ghcr.io/v2/homebrew/core/podman/manifests/4.3.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/podman/blobs/sha256:f65eb8652f1ee79a37bcc3c7d9d75719c13d7aa3b2b925d389ee2689451a7d40
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:f65eb8652f1ee79a37bcc3c7d9d75719c13d7aa3b2b925d389ee2689451a7d
######################################################################## 100.0%
==> Installing podman
==> Pouring podman--4.3.1.arm64_ventura.bottle.tar.gz
🍺 /opt/homebrew/Cellar/podman/4.3.1: 185 files, 47.6MB
==> Installing Cask podman-desktop
==> Moving App 'Podman Desktop.app' to '/Applications/Podman Desktop.app'
🍺 podman-desktop was successfully installed!
起動
Macのアプリケーションとしてインストールされているので、LaunchpadやSpotlightからPodman Desktopを探して起動します。
Podmanを使用したことがなければ、Initialize Podman
のトグルボタンが表示されます。Onにすると、Podmanの初期設定が開始されます。
@hisato_imanishiさんの記事にあるように、私もIntializing...Please Wait...
の文字が表示されてから一向に初期設定が完了しなかったので、一旦終了してPodman Desktopを再度起動すると以下の画面のようにPodmanが起動しました。
これまでDocker/Docker Desktopで作成したContainers、Images、Volumesを確認することができました。
Containerを起動する
Docker Desktopと同様にボタン1つ(以下画像の赤枠)で起動できます。停止するときはまたボタンを押せば停止します。
Docker Desktopと異なるのはcomposeで定義されているサービスを起動することができず、サービスで定義されているコンテナを1つづつ起動する必要があります。
Docker Desktopと同様にコンテナのログを見ることもできますし、Terminalからコンテナ内で操作を行うことができます。Docker Desktopと異なるのはInspectがより詳細でJSON形式であること、Docker DesktopがStatusであるところがDetailsになっているくらいです。コンテナ環境を設定・チューニングするエンジニア以外は気にならないでしょう。
ImageからContainerを起動し停止する
起動したいイメージをマウスオーバーすると、Containersと同じボタンが表示(以下画像の赤枠)されるのでクリックします。
ボタンをクリックすると以下のような画面が表示されます。
必要な情報を入力、Start Container
ボタンをクリックします。
今回はコンテナ名とポートのみでしたが、環境変数やVolumesを設定することができます。
必要に応じてより詳細な設定を行うこともできます。
AdvancedではTTYの付与など、
Networkingではコンテナホスト名やネットワークモードの切り替え、
Securityではコンテナをread-onlyモードに設定するなどが行えます。(Docker Desktopにつけて欲しい)
まとめ
時間があれば「Podman」自体を触りたいところでしたが今回はここまでにしておきます。
所感としてはDocker互換というだけあって違和感なくDocker Container/Imageを操作することができました。(Docker Desktopより詳細設定が見える、設定できるようになっている印象)
巷で人気が出てきている「Rancher Desktop」はDocker Desktopのunistallが必要?という情報もあり、その辺りの煩わしさがなく、brewコマンドひとつでインストールが完了して基本的な操作を行うことができたのはとても良かったです。
Docker Desktop代替サービスとしては「Rancher Desktop」の評価が高い印象ですし、AWSが発表したOSSの「Finch」も気になるところです。次回以降、この2つのサービスを試していこうと思います。
最後に
GoQSystemでは一緒に働いてくれる仲間を募集中です!
ご興味がある方は以下リンクよりご確認ください。