# 检验web服务 $ curl 127. 0. 0. 1:8080 <html><body><h1>It works!</h1></body></html> # 检验数据库服务 $ sudo dnf -y install mysql $ mysql -uroot -p -h127. 0. 0. 1 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 9. 2. 0 MySQL Community Server - GPL
Copyright ( c ) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases;
# 执行compose [sujx@docker compose]$ podman-compose up -d e16655a97b1f7be0b7c2cd47dfe8ac7b28cd4441ba2f07084ec21d8f10494dbc dc8017d1e0fa6516aa8c793628169822ffbc10fbeae2a33da9314eaeff901ade mySql 9a01c257347596ea98cbeec7cf8accf9b7b8ce965aedabe213859c5da8c11599 webApp # 查看容器 [sujx@docker compose]$ docker ps CONTAINER ID IMAGE COMMAND PORTS NAMES b312c82803bc docker.io/library/httpd:latest httpd-foreground 0. 0. 0. 0:8081->80/tcp http dc8017d1e0fa docker.io/library/mysql:latest mysqld 3306/tcp, 33060/tcp mySql # 查看pod [sujx@docker compose]$ podman pod list POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS e16655a97b1f pod_compose Running 14 seconds ago 2 # 导出yaml文件 [sujx@docker compose]$ podman generate kube pod_compose > wordpress.yaml
生成YAML文件
# Save the output of this file and use kubectl create -f to import # it into Kubernetes. # # Created with podman-5. 3. 1
# NOTE: The namespace sharing for a pod has been modified by the user and is not the same as the # default settings for kubernetes. This can lead to unexpected behavior when running the generated # kube yaml in a kubernetes cluster. --- apiVersion:v1 kind:Pod metadata: annotations: io.kubernetes.cri-o. SandboxID/mySql:9a134961881c0d6d3ae7309c6a8f99cd07f5eb2e46fe2174a073a1cf7b7446b3 io.kubernetes.cri-o. SandboxID/webApp:9a134961881c0d6d3ae7309c6a8f99cd07f5eb2e46fe2174a073a1cf7b7446b3 creationTimestamp:"2025-02-26T13:31:10Z" labels: app:podcompose name:podcompose spec: containers: -args: -mysqld env: -name:MYSQL_ROOT_PASSWORD value:P@ssword -name:MYSQL_USER value:wordpress -name:MYSQL_PASSWORD value:se(urepa55 -name:MYSQL_DATABASE value:wordpress image:docker.io/library/mysql:latest name:mySql volumeMounts: -mountPath:/var/lib/mysql name:home-sujx-webApp-mysql_data-host-0 -args: -apache2-foreground env: -name:WORDPRESS_DB_HOST value:mySql -name:WORDPRESS_DB_PASSWORD value:se(urepa55 -name:WORDPRESS_DB_USER value:wordpress image:docker.io/library/wordpress:latest name:webApp ports: -containerPort:80 hostPort:8080 volumeMounts: -mountPath:/var/www/html name:home-sujx-webApp-web_data-host-0 volumes: -hostPath: path:/home/sujx/webApp/mysql_data type:Directory name:home-sujx-webApp-mysql_data-host-0 -hostPath: path:/home/sujx/webApp/web_data type:Directory name:home-sujx-webApp-web_data-host-0
使用边车容器生成
应用的部署
# 创建pod $ podman pod create --name wordpress-pod -p 8080:80 0fe838363193acf301f7ccd0e64d7a7d3939a2d01a95133caa3667ba18da9f86 # 创建持久化卷 # 创建 WordPress 数据卷 $ podman volume create wordpress-data # 创建 MySQL 数据卷 $ podman volume create mysql-data # 创建 MySQL 容器 $ podman run -d \ --pod wordpress-pod \ --name mySql \ -v mysql-data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD="P@ssword" \ -e MYSQL_DATABASE=wordpress \ -e MYSQL_USER=wordpress \ -e MYSQL_PASSWORD="se( urepa55" \ docker.io/library/mysql:latest # 创建 wordpress 容器 $ podman run -d \ --pod wordpress-pod \ --name wordpress \ -v wordpress-data:/var/www/html \ -e WORDPRESS_DB_HOST=mySql \ -e WORDPRESS_DB_USER=wordpress \ -e WORDPRESS_DB_PASSWORD="se( urepa55" \ -e WORDPRESS_DB_NAME=wordpress \ docker.io/library/wordpress:latest # 查看pod状态 $ podman pod ps POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS 0fe838363193 wordpress Running 30 minutes ago 40f050d3a766 3 # 查看容器状态 $ podman ps --pod IMAGE PORTS PODNAME localhost/podman-pause:5. 3. 1-1732147200 0. 0. 0. 0:8080->80/tcp wordpress docker.io/library/mysql:latest 0. 0. 0. 0:8080->80/tcp, 3306/tcp, 33060/tcp mySql wwordpress docker.io/library/wordpress:latest 0. 0. 0. 0:8080->80/tcp wordpress wwordpress # 导出YAML文件 $ podman generate kube wordpress-pod >> wordpress-pod.yaml
查看YAML文件
# Save the output of this file and use kubectl create -f to import # it into Kubernetes. # # Created with podman-5. 3. 1 apiVersion:v1 kind:Pod metadata: annotations: io.kubernetes.cri-o. SandboxID/mySql:9b9005a230e398b1f82844fdef9072f1a27c2a7cd3a54089d33e540c1198e287 io.kubernetes.cri-o. SandboxID/wordpress:9b9005a230e398b1f82844fdef9072f1a27c2a7cd3a54089d33e540c1198e287 creationTimestamp:"2025-02-26T14:42:19Z" labels: app:wordpress-pod name:wordpress-pod spec: containers: -args: -mysqld env: -name:MYSQL_ROOT_PASSWORD value:P@ssword -name:MYSQL_PASSWORD value:se(urepa55 -name:MYSQL_DATABASE value:wordpress -name:MYSQL_USER value:wordpress image:docker.io/library/mysql:latest name:mySql ports: -containerPort:80 hostPort:8080 volumeMounts: -mountPath:/var/lib/mysql name:mysql-data-pvc -args: -apache2-foreground env: -name:WORDPRESS_DB_NAME value:wordpress -name:WORDPRESS_DB_USER value:wordpress -name:WORDPRESS_DB_PASSWORD value:se(urepa55 -name:WORDPRESS_DB_HOST value:mySql image:docker.io/library/wordpress:latest name:wordpress volumeMounts: -mountPath:/var/www/html name:wordpress-data-pvc volumes: -name:mysql-data-pvc persistentVolumeClaim: claimName:mysql-data -name:wordpress-data-pvc persistentVolumeClaim: claimName:wordpress-data