yum install -y podman-compose
创建项目php-nginx-mysql
cd /
mkdir php-nginx-mysql
批量创建项目所需目录
cd php-nginx-mysql
mkdir -p ./{www,php,mysql/{data,conf},nginx/conf.d}
增加compose.yaml文件,内容如下
version: '3.8' #可省略版本号,省略则使用最新版本
services:
nginx:
image: nginx:1.30.2
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./www:/var/www/html
depends_on:
- php
networks:
- lnmp-network
php:
build: ./php
image: php:8.2.31-fpm
volumes:
- ./www:/var/www/html
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
environment:
PHP_OPCACHE_ENABLE: "1"
networks:
- lnmp-network
mysql:
image: mysql:8.0.46
environment:
MYSQL_ROOT_PASSWORD: 123456 # 自己替换
MYSQL_DATABASE: testdb
MYSQL_USER: user # 自己替换
MYSQL_PASSWORD: 123456 # 自己替换
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/conf:/etc/mysql/conf.d
ports:
- "3306:3306"
networks:
- lnmp-network
networks:
lnmp-network:
driver: bridge
说明
nginx/conf.d:nginx站点配置
mysql/data:MySQL数据持久化
mysql/conf:MySQL自定义配置
www:项目代码目录
增加php/Dockerfile文件,内容如下
FROM php:8.2.31-fpm
# 安装 PHP 扩展
RUN docker-php-ext-install pdo_mysql mysqli php-mbstring php-gd php-zip php-xdebug php-bcmath
增加nginx/conf.d/default.conf文件,内容如下
server {
listen 80;
index index.php index.html;
server_name localhost;
#error_log /var/log/nginx/error.log;
#access_log /var/log/nginx/access.log;
root /var/www/html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
fastcgi_pass php:9000; # 注意这里的端口号是 PHP 容器的默认端口号(9000)
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
增加www/index.php文件,内容如下
<?php
echo date('Y-m-d') . '</br>';
echo 'podman-compose';
phpinfo();
?>
启动所有服务
# 在 php-nginx-mysql 根目录下执行
podman-compose up
# 或者
podman-compose up -d
使用浏览器输入localhost或者本机IP回车即可看到index.php的内容

关闭由podman-compose up -d启动的容器组,主要使用两个命令。
你可以根据需求来选择:
🛑 主要关闭方式
- 停止并移除(最常用):
podman-compose down
这条命令会停止所有容器并彻底删除它们及相关网络,相当于启动的逆向操作,让项目环境恢复干净。
· 常用命令:
podman-compose down:标准清理,保留数据卷。
podman-compose down -v:⚠️ 慎用,会删除数据库文件等所有数据。
podman-compose down --rmi all:⚠️ 非常用,会一并删除所用镜像。 - 仅暂停(快速重启):
podman-compose stop
类似按下"暂停键",只停止容器但不会删除,下次用podman-compose start可直接恢复并保留数据。 - 前台终止(Ctrl+C)
如果没用-d参数运行,在终端按Ctrl+C即可终止。但是注意,这通常也会停止并删除前台运行的容器。
🧹 清理数据
执行 down 后若仍有残留,可手动清理:
podman container prune:删除所有已停止容器。
podman volume prune:删除所有未使用的数据卷(⚠️ 会丢失数据!)。
podman image prune:删除未被使用的镜像。
你需要根据是想重启后保留数据,还是彻底清理环境来选择对应的命令。
查看容器状态
podman-compose info
查看容器状态
podman-compose ps
查看日志(如果出问题)
podman-compose logs nginx
podman-compose logs php
podman-compose logs mysql
查看镜像
podman-compose images
Podman镜像的保存位置取决于运行时的权限模式(Rootful 或 Rootless)
Root 模式(使用 sudo 或以 root 身份运行):默认保存在/var/lib/containers/storage 。
普通用户模式(Rootless,无 root 权限):默认保存在当前用户的家目录下,即$HOME/.local/share/containers/storage(例如/home/username/.local/share/containers/storage)。
你可以通过执行podman info命令,查看输出中的store.graphRoot字段来确认当前环境的具体存储路径 。

若需修改默认位置,可编辑配置文件~/.config/containers/storage.conf(普通用户)或/etc/containers/storage.conf(Root),并调整[storage]部分的graphroot参数 。