Podman

提供: ArchWiki
2020年7月16日 (木) 18:37時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

Podman は Docker の代わりになるプログラムで、同じようなインターフェイスを提供します。

インストール

podman パッケージをインストールしてください。コンテナイメージを作成したい場合は Buildah も見てください。

Docker と異なり、Podman はデーモンを必要としませんが、cockpit-podman など cockpit のようなサービスのための API は提供しています。

デフォルトでは Podman を実行できるのは root だけです。root 以外のユーザーでコンテナを実行したい場合はルートレス Podman を参照。

設定

コンテナの挙動を設定する設定ファイルは /etc/containers に存在します。Podman によって使われるネットワークブリッジインターフェイスを設定したいときは /etc/cni/net.d/87-podman-bridge.conflist を見てください。

ルートレス Podman

デフォルトではコンテナ (カーネルの文脈で言うところの名前空間) を実行できるのは root だけです。

Podman コンテナを root を使わずに操作したい場合、まずコンテナを使いたいユーザーとグループを決めて、適切なエントリを /etc/subuid/etc/subgid に追加してください。

以下の例では podman ユーザーとグループによる Podman コンテナの実行を有効化します。165536 から 169631 までの UID/GID が podman ユーザー・グループにそれぞれ割り当てられます。詳しくは subuid(5)subgid(5) を見てください。

/etc/subuid
podman:165536:4096
/etc/subgid
podman:165536:4096

上記の設定後、podman ユーザー・グループで podman コンテナを起動できるようになります。

イメージ

ノート: イメージのレジストリプレフィックスは省略できます。Podman は /etc/containers/registries.confregistries.search に定義されている全てのレジストリからイメージを自動で (定義されている順番で) 検索します。以下に記述しているイメージは設定に docker.io がなくても使えるように全てプレフィックスを付けています。

Arch Linux

以下のコマンドで Arch Linux x86_64 イメージが Docker Hub から取得されます。ネットワークなどを除外した縮小版の Arch となっています。

# podman pull docker.io/archlinux

README.md も参照してください。

完全な Arch イメージを使いたい場合、リポジトリを複製して自分自身のイメージを作成してください。

$ git clone https://github.com/archlinux/archlinux-docker.git

devtools パッケージをインストールしてください。

packages ファイルを編集して 'base' とだけ記述し、以下のコマンドを実行:

# make rootfs
# podman build -t archlinux .

Alpine Linux

Alpine Linux はコンテナイメージとして容量が小さく、静的バイナリとしてコンパイルされたソフトウェアに適しています。以下のコマンドで最新の Alpine Linux イメージが Docker Hub から取得されます:

# podman pull docker.io/alpine

Alpine Linux はほとんどの Linux ディストリビューションで使われている glibc libc 実装の代わりに musl libc 実装を使っています。Arch Linux は glibc を使っているため、Arch Linux ホストと Alpine Linux コンテナにはパフォーマンスからソフトウェアの正確性まで様々な影響がある違いが存在します。C ライブラリの差異については こちら に記述されています。

Arch Linux (や glibc を使用する他の環境) で動的リンクでビルドしたソフトウェアは Alpine Linux (や他の libc を使用する環境) で実行したときにバグやパフォーマンスの問題が発生する可能性があります。例としては [1], [2], [3] を見てください。

CentOS

以下のコマンドによって最新の Centos イメージが Docker Hub から取得されます:

# podman pull docker.io/centos

CentOS のリリースを指定するタグについては Docker Hub のページを見てください。

Debian

以下のコマンドによって最新の Debian イメージが Docker Hub から取得されます:

# podman pull docker.io/debian

利用可能なタグについては Docker Hub のページを見てください。各 Debian リリース毎に standard と slim バージョンが存在します。

参照