📚

Podman(コンテナ管理ツール)を使ってコンパイルやスクリプト実行をサクッと行う方法

2022/06/20に公開

早速やり方ですが、最新のRubyでのスクリプト実行を例にすれば、以下のコマンドで出来ます。

podman run -it --rm -v "$PWD":/x -w /x ruby:latest ruby foo.rb

プログラミング言語やそのバージョンに応じて、イメージの指定(ruby:latestの部分)を変えればいろいろとサクッと出来ます。Podman万歳!

Podmanって何?Docker使わないの?

Podmanは、Dockerとだいたい互換性のあるコンテナ管理ツールですが、Dockerと違ってdaemonを必要とせず、さらに、ルートレス動作が基本となっています。

Podmanの良いところ:サクッとルートレス動作

上述のコマンドはルートレスでサクッと動きます。

Dockerのように、ルート権限を与えるという危険をおかさずに済みます。よって、sudoでルートパスワード入力という手間も必用もありません。
さらに、上述のコマンドを実行した結果として作成されたファイルの所有者もルートでなくユーザですので、作成されたファイルの操作で面倒になることもありません。

ちなみに、Dockerでもいろいろとやりようはあるらしいのですが、Podmanだと頑張らなくてもサクッと出来て素晴らしいです。

(参考)イメージが見つからないとエラーになったら

上述のコマンドを実行して以下のようなエラーが発生した場合には、設定を追加しましょう。

Error: short-name "ruby:latest" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"

具体的には、エラーメッセージでも示されている/etc/containers/registries.confに、以下の1行を追加すれば良いでしょう。

unqualified-search-registries = ["docker.io"]

Discussion