1.6. ルートレスコンテナーの設定
システムで利用可能な機能をコンテナーで完全利用できるように、Podman、Skopeo、Buildah などのコンテナーツールをスーパーユーザー特権 (root ユーザー) が割り当てられたユーザーで実行するのが最善の方法です。ただし、Red Hat Enterprise Linux 8.1 以降で一般的に利用可能な「ルートレスコンテナー」と呼ばれる機能を使用すると、コンテナーを一般ユーザーとして使用できます。
Docker などのコンテナーエンジンでは、通常の (root 以外の) ユーザーとして Docker コマンドを実行できますが、これらの要求を実行する Docker デーモンは root として実行されます。これにより、一般ユーザーがコンテナー経由で要求を送信でき、システムに影響を与える可能性があります。システム管理者は、ルートレスコンテナーユーザーを設定して、一般ユーザーがコンテナーアクティビティーに損害を与える可能性を回避しつつ、一般ユーザーが自分のアカウントで大半のコンテナー機能を安全に実行できるようにします。
この手順では、Podman、Skopeo、および Buildah ツールを使用して、root 以外のユーザー (ルートレス) としてコンテナーを操作するようにシステムを設定する方法を説明します。また、一般ユーザーのアカウントは、コンテナーの実行に必要なすべてのオペレーティングシステム機能に完全にアクセスできないために発生する可能性のある制限についても説明します。
前提条件
- root 以外のユーザーでコンテナーツールを使用できるように、RHEL システムを設定する必要があります。
手順
- RHEL をインストールします。
podmanパッケージをインストールします。# dnf install podman -yユーザーアカウントを新規作成します。
# useradd -c "Joe Jones" joe # passwd joe- ユーザーは、ルートレス Podman を使用できるように自動的に設定されます。
-
useraddコマンドは、/etc/subuidと/etc/subgidファイルに、アクセス可能なユーザー ID とグループ ID の範囲を自動的に設定します。 -
etc/subuidや/etc/subgidを手動で変更した場合、新しい変更を適用させるためにpodman system migrateコマンドを実行する必要があります。
ユーザーに接続します。
$ ssh joe@server.example.com注記これらのコマンドでは正しい環境変数が設定されないため、
suまたはsu -コマンドは使用しないでください。registry.access.redhat.com/ubi9/ubiコンテナーイメージをプルします。$ podman pull registry.access.redhat.com/ubi9/ubimyubiという名前のコンテナーを実行し、OS バージョンを表示します。$ podman run --rm --name=myubi registry.access.redhat.com/ubi9/ubi \ cat /etc/os-release NAME="Red Hat Enterprise Linux" VERSION="9 (Plow)"