Docker部署PHP项目指南:从编写Dockerfile到容器运行详解

陈默
陈默
发布时间:2026-10-15| 7人浏览过
原创

本文介绍如何使用Dockerfile构建镜像并将编译后的PHP项目部署到容器中。涵盖项目结构配置、Dockerfile核心指令、Nginx与PHP-FPM环境设置及容器启动流程。

目标与环境准备

实现通过Docker运行Nginx和PHP-FPM以提供Web服务。需要准备一个编译完成的静态资源目录(通常命名为 /dist)用于存放项目代码,并配置相关的Nginx站点配置文件。

第1步:确定项目目录结构

在操作前,需明确本地项目的文件组织方式,确保构建上下文路径正确。推荐的结构如下:

  • /project_name:项目根目录。
  • /dist:存放经过编译或构建的静态项目输出文件。
  • /config:存放配置文件,其中包含 Dockerfile 和 nginx.conf 等关键文件。

第2步:编写Nginx站点配置

创建 /config/nginx.conf 文件,定义Nginx如何监听端口及处理PHP请求。配置中需确保将项目根目录指向 /var/www/project_name/。

第3步:创建Dockerfile文件

在 /config/Dockerfile 中定义镜像构建逻辑。本示例使用Ubuntu作为基础系统,并安装Nginx和PHP7.4-FPM。

# 基于Ubuntu最新镜像构建
FROM ubuntu:latest

# 设定维护者信息
MAINTAINER congjiang

# 更新软件源并安装Nginx、PHP7.4-FPM及文本编辑器
RUN apt-get update && apt-get upgrade -y && apt-get install -y nginx php7.4-fpm vim

# 将本地的编译后代码复制到容器中的 /var/www/project_name/ 目录下
COPY ./dist/ /var/www/project_name/

# 复制自定义Nginx配置到指定目录,作为默认站点配置
COPY ./config/nginx.conf /etc/nginx/conf.d/default.conf

# 容器启动时执行的命令:先后台启动PHP-FPM,再前台保持Nginx常驻
CMD php-fpm7.4 -D && nginx -g 'daemon off;'

第4步:生成Docker镜像

在项目根目录 /project_name 下执行构建命令。使用 -f 参数指定位于 config 子目录下的Dockerfile,并通过 -t 参数命名镜像(例如 myproject:latest)。末尾的点 . 表示将当前目录作为构建上下文。

docker build -f config/Dockerfile -t myproject:latest .

第5步:启动Docker容器

使用构建好的镜像运行容器。若需即时修改文件并生效,建议使用 -v 挂载卷映射功能。

docker run -itd -p 80:8080 myproject:latest

常用参数说明:

  • -p 80:8080:将主机的80端口映射至容器的8080端口。
  • -d:后台运行容器。
  • -v 主机路径:容器路径:如 -v E:/logs/:/var/logs/nginx/,可实现日志文件或配置文件的实时同步。

此时访问 http://localhost/ 即可验证网站是否正常运行。

第6步:排查常见问题

在重复构建相同名称的镜像时,旧镜像不会被自动删除,而是变成 <none>:<none> 状态的悬空镜像。为避免磁盘空间占用,可先使用以下命令强制清理旧版本镜像:

docker rmi -f <name>:<tag>

第7步:容器与镜像管理

进入正在运行的容器内部查看或调试:

docker ps            # 获取容器的CONTAINER ID
docker exec -it <ID> /bin/bash

清理不再需要的资源:

docker rm -f <name>           # 强制删除指定名称的容器
docker rmi -f <name>:<tag>   # 强制删除指定的本地镜像

如果不想手动编写配置,也可以直接拉取现成的基础镜像:

docker pull freedomx20/nginx-fpm7.4:1.0
以上就是利用Dockerfile文件部署php项目的详细内容,更多关于Dockerfile文件部署php内容请搜索本站以前的文章或继续浏览下面的相关文章!
相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。