18.9. Podman コンテナー内でのコンテナーのビルド
Podman を使用してコンテナー内でコンテナーを実行できます。この例では、Podman を使用してコンテナーから別のコンテナーをビルドし、実行する方法を示しています。コンテナーは、簡単なテキストベースのゲーム Moon-buggy を実行します。
前提条件
-
container-tools
モジュールがインストールされている。 registry.redhat.io レジストリーにログインしている。
# podman login registry.redhat.io
手順
registry.redhat.io/rhel8/podman
イメージをベースとするコンテナーを実行します。# podman run --privileged --name podman_container -it \ registry.redhat.io/rhel8/podman /bin/bash
-
registry.access.redhat.com/rhel8/podman
イメージに基づいて、privileged_podman
という名前の外部コンテナーを実行します。 -
--it
オプションは、コンテナー内で対話式 bash シェルを実行します。 -
--privileged
オプションは、コンテナーをホストから分離するセキュリティー機能を無効にします。
-
podman_container
コンテナー内にContainerfile
を作成します。# vi Containerfile FROM registry.access.redhat.com/ubi8/ubi RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm RUN yum -y install moon-buggy && yum clean all CMD ["/usr/bin/moon-buggy"]
Containerfile
のコマンドで以下の build コマンドが実行されます。-
registry.access.redhat.com/ubi8/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/ubi8/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