Red Hat Training

A Red Hat training course is available for RHEL 8

1.4. ルートレスコンテナーの設定

システムで利用可能な機能をコンテナーで完全利用できるように、Podman、Skopeo、Buildah などのコンテナーツールをスーパーユーザー特権 (root ユーザー) が割り当てられたユーザーで実行するのが最善の方法です。ただし、RHEL 8.1 以降で一般的に利用可能な「ルートレスコンテナー」と呼ばれる機能を使用すると、コンテナーを一般ユーザーとして使用できます。

Docker などのコンテナーエンジンでは、通常の (root 以外の) ユーザーとして Docker コマンドを実行できますが、これらの要求を実行する Docker デーモンは root として実行されます。これにより、一般ユーザーがコンテナー経由で要求を送信でき、システムに影響を与える可能性があります。システム管理者は、ルートレスコンテナーユーザーを設定して、一般ユーザーがコンテナーアクティビティーに損害を与える可能性を回避しつつ、一般ユーザーが自分のアカウントで大半のコンテナー機能を安全に実行できるようにします。

この手順では、Podman、Skopeo、および Buildah ツールを使用して、root 以外のユーザー (ルートレス) としてコンテナーを操作するようにシステムを設定する方法を説明します。また、一般ユーザーのアカウントは、コンテナーの実行に必要なすべてのオペレーティングシステム機能に完全にアクセスできないために発生する可能性のある制限についても説明します。

前提条件

  • root 以外のユーザーでコンテナーツールを使用できるように、RHEL システムを設定する必要があります。

手順

  1. RHEL をインストールします。
  2. podman パッケージおよび slirp4netns パッケージをインストールします。

    # yum install slirp4netns podman -y
  3. ユーザーアカウントを新規作成します。

    # useradd -c "Joe Jones" joe
    # passwd joe

    ユーザーは、ルートレス Podman を使用できるように自動的に設定されます。useradd コマンドは、/etc/subuid/etc/subgid ファイルに、アクセス可能なユーザー ID とグループ ID の範囲を自動的に設定します。

  4. ユーザーに接続します。

    $ ssh joe@server.example.com
    注記
    これらのコマンドでは正しい環境変数が設定されないため、su または su - コマンドは使用しないでください。Red Hat カスタマーポータルの認証情報を使用します。
  5. registry.access.redhat.com/ubi8/ubi コンテナーイメージをプルします。

    $ podman pull registry.access.redhat.com/ubi8/ubi
  6. myubi という名前のコンテナーを実行し、OS バージョンを表示します。

    $ podman run --name=myubi registry.access.redhat.com/ubi8/ubi cat
        /etc/os-release
    NAME="Red Hat Enterprise Linux"
    VERSION="8.4 (Ootpa)"