Docker怎么搭建PHP Docker容器配置PHP环境

来源:苹果APP网作者:冷风头衔:草根站长
导读:本期聚焦于小伙伴创作的《Docker怎么搭建PHP Docker容器配置PHP环境》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Docker怎么搭建PHP Docker容器配置PHP环境》有用,将其分享出去将是对创作者最好的鼓励。

使用Docker搭建PHP环境可以避免本地环境依赖冲突,实现项目环境的快速迁移和复用,下面我们一步步完成整个配置过程。

Docker怎么搭建PHP Docker容器配置PHP环境

一、准备工作

首先确保本地已经安装Docker,可通过以下命令验证安装是否成功:

docker --version
# 输出类似 Docker version 24.0.6, build ed223bc 说明安装成功

二、拉取PHP官方镜像

Docker Hub提供了官方维护的PHP镜像,我们可以根据需要选择对应的版本,这里以PHP 8.2为例:

# 拉取PHP 8.2的CLI版本镜像,如果需要FPM版本可以替换为php:8.2-fpm
docker pull php:8.2-cli

拉取完成后可以通过以下命令查看本地镜像:

docker images | grep php

三、创建并运行PHP容器

我们可以通过docker run命令直接创建并启动PHP容器,同时挂载本地项目目录到容器中,方便代码同步:

# 创建并启动PHP容器,参数说明:
# -d 后台运行容器
# --name 指定容器名称为php_env
# -v 挂载本地目录到容器目录,这里将当前目录下的php_project挂载到容器的/var/www/html
# -p 映射端口,这里将容器的9000端口映射到本地9000端口(FPM版本常用)
# php:8.2-cli 使用的镜像名称
docker run -d --name php_env -v $(pwd)/php_project:/var/www/html -p 9000:9000 php:8.2-cli

如果是需要配合Nginx使用的FPM版本,拉取php:8.2-fpm镜像后,运行命令调整为:

docker run -d --name php_fpm -v $(pwd)/php_project:/var/www/html -p 9000:9000 php:8.2-fpm

四、安装PHP常用扩展

官方PHP镜像默认只安装了基础扩展,我们可以通过docker exec进入容器后手动安装需要的扩展,以安装pdo_mysql、gd、curl扩展为例:

# 进入运行中的PHP容器
docker exec -it php_env /bin/bash

# 更新软件源
apt-get update

# 安装pdo_mysql扩展
docker-php-ext-install pdo_mysql

# 安装gd扩展,需要先安装依赖
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev
docker-php-ext-configure gd --with-freetype --with-jpeg
docker-php-ext-install gd

# 安装curl扩展
apt-get install -y libcurl4-openssl-dev
docker-php-ext-install curl

# 退出容器
exit

扩展安装完成后可以重启容器让配置生效:

docker restart php_env

五、验证PHP环境

在本地挂载的php_project目录下创建index.php文件,内容如下:

<?php
// 输出PHP版本信息
echo "当前PHP版本:" . phpversion() . "<br/>";
// 查看已安装的扩展
echo "已安装扩展:" . implode(", ", get_loaded_extensions());
?>

如果是CLI版本的容器,可以通过以下命令执行脚本验证:

docker exec php_env php /var/www/html/index.php

如果是FPM版本配合Nginx使用,还需要启动Nginx容器并配置转发到PHP-FPM,Nginx配置示例如下:

server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    index index.php;

    location ~ .php$ {
        fastcgi_pass php_fpm:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

六、容器常用管理命令

日常使用中常用的容器管理命令如下:

  • 查看运行中的容器:docker ps
  • 查看所有容器(包括停止的):docker ps -a
  • 停止容器:docker stop php_env
  • 启动容器:docker start php_env
  • 删除容器:docker rm php_env
  • 查看容器日志:docker logs php_env

七、使用Docker Compose简化配置

如果每次都手动执行docker run命令比较繁琐,可以使用Docker Compose来管理多容器服务,创建docker-compose.yml文件内容如下:

version: '3'
services:
  php:
    image: php:8.2-fpm
    container_name: php_env
    volumes:
      - ./php_project:/var/www/html
    ports:
      - "9000:9000"
  nginx:
    image: nginx:latest
    container_name: nginx_env
    volumes:
      - ./php_project:/var/www/html
      - ./nginx_conf:/etc/nginx/conf.d
    ports:
      - "80:80"
    depends_on:
      - php

docker-compose.yml所在目录执行以下命令即可一键启动所有服务:

docker-compose up -d

DockerPHP容器配置php_docker修改时间:2026-07-14 17:48:31

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。