Docker Desktopが大規模企業に対して有料になるということで、代替を探している方も多いのではないでしょうか。macOSはLinux実行環境が標準で用意されていないこともあり対応が面倒ですが、一つの解決策としてPodmanというものがあります。
この記事ではライトユーザー向けとしてPodmanを使えるようになるための手順だけを簡潔に示します。解説記事というよりは、やってみた系の記事に近いかもしれません。
PodmanやPodman machineについての詳しい説明は公式ドキュメントや、他の方によるいくつかの解説記事があるので、そちらをお読みください。
検証環境
- MacBook Pro(13-inch, 2020)
- macOS Catalina 10.15.7
- zsh
Homebrewで簡単にインストールできます。
% brew install podman
執筆時(2021年9月12日)にはv3.3.1が入りました。
% podman --version podman version 3.3.1
Podmanを実行する前に、Podmanを実行するためのLinux環境であるPodman machineを起動する必要があります。
まず、初期化が必要です。
# Podman machineの初期化 # VMイメージをダウンロードしてくる % podman machine init
メモリ等の設定を変えることも可能です。参考
初期化が完了したらPodman machineを起動しましょう。Podmanを使う時には必ずPodman machineを起動する必要があります。
# Podman machineの起動 % podman machine start
私が試したところ初回実行時にはErrorが出ましたが問題なく起動できました。既にissue化されており、PRもマージされているようです。

https://github.com/containers/podman/issues/11421
起動確認は
% podman machine ls NAME VM TYPE CREATED LAST UP podman-machine-default* qemu 3 hours ago 4 minutes ago
のようにできます。
停止する際にはpodman machine stop
を実行してください。
Simply put: alias docker=podman
と書かれているように、docker
コマンドをpodman
に置き換えることでDockerと同じことができます。
% podman pull nginx # 起動するが、v3.3.1ではポートフォワードがうまくいかない(後述) % podman run --rm -d --name nginx -p 8080:80 nginx % podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 109dc70571dd docker.io/library/nginx:latest nginx -g daemon o... 7 seconds ago Up 7 seconds ago 0.0.0.0:8080->80/tcp nginx
v3.3.1では自動ポートフォワード機能周りにバグがあるらしく、runする際に--network bridge
をつけるなどの対応が必要なようです。詳しくは参考記事2をご覧ください。既にPRがマージされているので、リリースを待ってからPodmanを試した方が良いかもしれません。