Menu Close
Settings Close

Language and Page Formatting Options

12.9. Podman コンテナー内でのコンテナーのビルド

この手順では、Podman を使用してコンテナー内でコンテナーを実行する方法を説明します。この例では、Podman を使用してコンテナーから別のコンテナーをビルドし、実行する方法を示しています。コンテナーは、簡単なテキストベースのゲーム Moon-buggy を実行します。

前提条件

  • container-tools モジュールがインストールされている。

    # dnf module install -y container-tools
  • registry.redhat.io レジストリーにログインしている。

    # podman login registry.redhat.io

手順

  1. registry.redhat.io/rhel9/podman イメージをベースとするコンテナーを実行します。

    # podman run --privileged --name podman_container -it \ registry.redhat.io/rhel9/podman /bin/bash
    • registry.access.redhat.com/rhel9/podman イメージに基づいて、privileged_podman という名前の外部コンテナーを実行します。
    • --it オプションは、コンテナー内で対話式 bash シェルを実行します。
    • --privileged オプションは、コンテナーをホストから分離するセキュリティー機能を無効にします。
  2. podman_container コンテナー内に Containerfile を作成します。

    # vi Containerfile
    FROM registry.access.redhat.com/ubi9/ubi
    RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    RUN dnf -y install moon-buggy && dnf clean all
    CMD ["/usr/bin/moon-buggy"]

    Containerfile のコマンドで以下の build コマンドが実行されます。

    • registry.access.redhat.com/ubi9/ubi イメージからコンテナーをビルドします。
    • epel-release-latest-8.noarch.rpm パッケージをインストールします。
    • moon-buggy パッケージをインストールします。
    • コンテナーコマンドを設定します。
  3. Containerfile を使用して moon-buggy という名前の新しいコンテナーイメージをビルドします。

    # podman build -t moon-buggy .
  4. オプション:すべてのイメージを一覧表示します。

    # podman images
    REPOSITORY                  TAG      IMAGE ID      CREATED        SIZE
    localhost/moon-buggy  latest  c97c58abb564  13 seconds ago  1.67 GB
    registry.access.redhat.com/ubi9/ubi latest 4199acc83c6a  132seconds ago 213 MB
  5. moon-buggy コンテナーに基づいて新しいコンテナーを実行します。

    # podman run -it --name moon moon-buggy
  6. オプション:moon-buggy イメージにタグを付けます。

    # podman tag moon-buggy registry.example.com/moon-buggy
  7. オプション:moon-buggy イメージをレジストリーにプッシュします。

    # podman push registry.example.com/moon-buggy