18.9. Podman コンテナー内でのコンテナーのビルド
Podman を使用してコンテナー内でコンテナーを実行できます。この例では、Podman を使用してコンテナーから別のコンテナーをビルドし、実行する方法を示しています。コンテナーは、簡単なテキストベースのゲーム Moon-buggy を実行します。
前提条件
-
container-tools
メタパッケージがインストールされている。 registry.redhat.io レジストリーにログインしている。
# podman login registry.redhat.io
手順
registry.redhat.io/rhel9/podman
イメージをベースとするコンテナーを実行します。# podman run --privileged --name podman_container -it \ registry.redhat.io/rhel9/podman /bin/bash
-
registry.redhat.io/rhel9/podman
イメージに基づいて、podman_container
という名前の外部コンテナーを実行します。 -
--it
オプションは、コンテナー内で対話式 bash シェルを実行します。 -
--privileged
オプションは、コンテナーをホストから分離するセキュリティー機能を無効にします。
-
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
パッケージをインストールします。 - コンテナーコマンドを設定します。
-
Containerfile
を使用してmoon-buggy
という名前の新しいコンテナーイメージをビルドします。# podman build -t moon-buggy .
オプション: すべてのイメージをリスト表示します。
# 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
moon-buggy
コンテナーに基づいて新しいコンテナーを実行します。# podman run -it --name moon moon-buggy
オプション:
moon-buggy
イメージにタグを付けます。# podman tag moon-buggy registry.example.com/moon-buggy
オプション:
moon-buggy
イメージをレジストリーにプッシュします。# podman push registry.example.com/moon-buggy