12.7. Podman を使用したコンテナーと Pod の自動実行
次に、podman play kube コマンドを使用して、生成された YAML ファイルを Kubernetes または OpenShift 環境に転送する前に、ローカルシステムで Pod およびコンテナーの作成をテストできます。
podman play kube コマンドは、YAML ファイルを使って、1 つのポッド内に複数のコンテナーを含む複数のポッドを自動的にビルドおよび実行することもできます。これは docker compose コマンドと類似した動作です。以下の条件が該当する場合には、自動的にイメージが構築されます。
- YAML ファイルで使用されているイメージと同じ名前のディレクトリーが存在する
- そのディレクトリーには 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
$ podman rmi localhost/mariadb-conf $ podman rmi docker.io/library/wordpress $ podman rmi docker.io/library/mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
wordpress.yamlファイルを使用して、wordpress Pod を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman play kubeコマンド:-
docker.io/library/mariadbイメージを元にlocalhost/mariadb-conf:latestイメージを自動構築します。 -
docker.io/library/wordpress:latestのイメージをプルします。 -
wordpresspod-mydbとwordpresspod-mywebの 2 つのコンテナーが含まれる、wordpresspodという名前の Pod を作成します。
-
すべてのコンテナーと Pod を表示します。
podman ps --pod -a
$ 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 wordpresspodCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Pod が実行されていることを確認します。http://localhost:8080/wp-admin/install.php ページに移動するか、
curlコマンドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow