Red Hat Training

A Red Hat training course is available for RHEL 8

13.7. Podman を使用したコンテナーと Pod の自動実行

次に、podman play kube コマンドを使用して、生成された YAML ファイルを Kubernetes または OpenShift 環境に転送する前に、ローカルシステムで Pod およびコンテナーの作成をテストできます。

podman play kube コマンドは、docker compose コマンドと同様に YAML ファイルを使用して、コンテナーが複数ある Pod を自動的に構築して実行することも可能です。以下の条件が該当する場合には、自動的にイメージが構築されます。

  1. YAML ファイルで使用されているイメージと同じ名前のディレクトリーが存在する
  2. そのディレクトリーには Containerfile が含まれている

前提条件

  • container-tools モジュールがインストールされている。
  • wordpresspod という名前の Pod が作成されている。詳細は、Podman を使用したコンテナーと Pod の手動実行 を参照してください。
  • YAML ファイルが生成されている。詳細は、Podman を使用した YAML ファイルの生成のセクションをご覧ください。
  • 最初からやり直す場合は、ローカルに保存されているイメージを削除してください。

    $ podman rmi localhost/mariadb-conf
    $ podman rmi docker.io/library/wordpress
    $ podman rmi docker.io/library/mysql

手順

  1. wordpress.yaml ファイルを使用して、wordpress Pod を作成します。

    $ podman play kube wordpress.yaml
    STEP 1/2: FROM docker.io/library/mariadb
    STEP 2/2: COPY my.cnf /etc/mysql/my.cnf
    COMMIT localhost/mariadb-conf:latest
    --> 428832c45d0
    Successfully tagged localhost/mariadb-conf:latest
    428832c45d07d78bb9cb34e0296a7dc205026c2fe4d636c54912c3d6bab7f399
    Trying to pull docker.io/library/wordpress:latest...
    Getting image source signatures
    Copying blob 99c3c1c4d556 done
    ...
    Storing signatures
    Pod:
    3e391d091d190756e655219a34de55583eed3ef59470aadd214c1fc48cae92ac
    Containers:
    6c59ebe968467d7fdb961c74a175c88cb5257fed7fb3d375c002899ea855ae1f
    29717878452ff56299531f79832723d3a620a403f4a996090ea987233df0bc3d

    podman play kube コマンド:

    • docker.io/library/mariadb イメージを元に localhost/mariadb-conf:latest イメージを自動構築します。
    • docker.io/library/wordpress:latest の イメージをプルします。
    • wordpresspod-mydbwordpresspod-myweb の 2 つのコンテナーが含まれる、wordpresspod という名前の Pod を作成します。
  2. すべてのコンテナーと Pod を表示します。

    $ podman ps --pod -a
    CONTAINER ID  IMAGE                               COMMAND               CREATED        STATUS                    PORTS                 NAMES               POD ID        PODNAME
    a1dbf7b5606c  k8s.gcr.io/pause:3.5                                      3 minutes ago  Up 2 minutes ago          0.0.0.0:8080->80/tcp  3e391d091d19-infra  3e391d091d19  wordpresspod
    6c59ebe96846  localhost/mariadb-conf:latest       mariadbd              2 minutes ago  Exited (1) 2 minutes ago  0.0.0.0:8080->80/tcp  wordpresspod-mydb   3e391d091d19  wordpresspod
    29717878452f  docker.io/library/wordpress:latest  apache2-foregroun...  2 minutes ago  Up 2 minutes ago          0.0.0.0:8080->80/tcp  wordpresspod-myweb  3e391d091d19  wordpresspod

検証

  • Pod が実行されていることを確認します。http://localhost:8080/wp-admin/install.php ページに移動するか、curl コマンドを使用します。

    $ curl http://localhost:8080/wp-admin/install.php
    <!DOCTYPE html>
    <html xml:lang="en-US">
    <head>
    ...
    </head>
    <body class="wp-core-ui">
    <p id="logo">WordPress</p>
        <h1>Welcome</h1>
    ...

関連情報