Menu Close
Settings Close

Language and Page Formatting Options

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

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

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

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

前提条件

手順

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

    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="ja-JP">
    <head>
    ...
    </head>
    <body class="wp-core-ui">
    <p id="logo">WordPress</p>
        <h1>Welcome</h1>
    ...

関連情報