12.7. 使用 Podman 自动运行容器和 pod
在将生成的 YAML 文件传送到 Kubernetes 或 OpenShift 环境前,您可以使用 podman play kube
命令测试本地系统中的 pod 和容器的创建。
podman play kube
命令还可使用类似于 docker compose 命令的 YAML 文件自动构建并运行 pod 中具有多个容器的多个 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
$ podman rmi localhost/mariadb-conf $ podman rmi docker.io/library/wordpress $ podman rmi docker.io/library/mysql
Copy 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
的 pod,它有两个容器,名为wordpresspod-mydb
和wordpresspod-myweb
。
-
根据
列出所有容器和 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 wordpresspod
Copy 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