18.8. 少ない権限での Podman の実行

--privileged オプションを指定せずに、ネストされた 2 つの Podman コンテナーを実行できます。--privileged オプションを指定せずにコンテナーを実行することは、より安全なオプションです。

これは、可能な限り安全な方法で異なるバージョンの Podman を試す場合に役立ちます。

前提条件

  • container-tools メタパッケージがインストールされている。

手順

  • ネストされた 2 つのコンテナーを実行します。

    $ podman run --name=unprivileged_podman --security-opt label=disable \
      --user podman --device /dev/fuse \
      registry.access.redhat.com/ubi9/podman \
      podman run ubi9 echo hello
  • registry.access.redhat.com/ubi9/podman イメージに基づいて、unprivileged_podman という名前の外部コンテナーを実行します。
  • --security-opt label=disable オプションは、ホスト Podman での SELinux の分離を無効にします。SELinux では、コンテナー化されたプロセスは、コンテナー内で実行するために必要なすべてのファイルシステムをマウントすることはできません。
  • --user podman オプションを指定すると、自動的に、外部コンテナー内の Podman がユーザーの名前空間内で実行されるようになります。
  • --device /dev/fuse オプションは、コンテナー内の fuse-overlayfs パッケージを使用します。このオプションは /dev/fuse を外部コンテナーに追加し、コンテナー内の Podman がこれを使用できるようにします。
  • podman run ubi9 echo hello コマンドを実行して、ubi9 イメージに基づいて内部コンテナーを作成します。
  • ubi9 の短縮イメージ名がエイリアスとして解決されていることに注意してください。これにより、registry.access.redhat.com/ubi9:latest イメージがプルされます。

検証

  • すべてのコンテナーをリスト表示します。

    $ podman ps -a
    CONTAINER ID  IMAGE                            COMMAND               CREATED            STATUS                          PORTS   NAMES
    a47b26290f43               podman run ubi9 e...  30 seconds ago     Exited (0) 13 seconds ago               unprivileged_podman