13.7. Podman を使用したコンテナーと Pod の自動実行
次に、podman play kube
コマンドを使用して、生成された YAML ファイルを Kubernetes または OpenShift 環境に転送する前に、ローカルシステムで Pod およびコンテナーの作成をテストできます。
podman play kube
コマンドは、docker compose コマンドと同様に YAML ファイルを使用して、コンテナーが複数ある Pod を自動的に構築して実行することも可能です。以下の条件が該当する場合には、自動的にイメージが構築されます。
- 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
手順
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-mydb
とwordpresspod-myweb
の 2 つのコンテナーが含まれる、wordpresspod
という名前の Pod を作成します。
-
すべてのコンテナーと 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> ...
関連情報
- Build Kubernetes pods with Podman play kube
-
システム上の
podman-play-kube
man ページ