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/ubi8/podman \ podman run ubi8 echo hello
-
registry.access.redhat.com/ubi8/podman
イメージに基づいて、unprivileged_podman
という名前の外部コンテナーを実行します。 -
--security-opt label=disable
オプションは、ホスト Podman での SELinux の分離を無効にします。SELinux では、コンテナー化されたプロセスは、コンテナー内で実行するために必要なすべてのファイルシステムをマウントすることはできません。 -
--user podman
オプションを指定すると、自動的に、外部コンテナー内の Podman がユーザーの名前空間内で実行されるようになります。 -
--device /dev/fuse
オプションは、コンテナー内のfuse-overlayfs
パッケージを使用します。このオプションは/dev/fuse
を外部コンテナーに追加し、コンテナー内の Podman がこれを使用できるようにします。 -
podman run ubi8 echo hello
コマンドを実行して、ubi8
イメージに基づいて内部コンテナーを作成します。 -
ubi8 の短縮イメージ名がエイリアスとして解決されていることに注意してください。これにより、
registry.access.redhat.com/ubi8:latest
イメージがプルされます。
検証
すべてのコンテナーをリスト表示します。
$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a47b26290f43 podman run ubi8 e... 30 seconds ago Exited (0) 13 seconds ago unprivileged_podman