
PHP容器镜像是预构建的Docker镜像,集成PHP运行时环境及其依赖组件,旨在简化PHP应用的部署与运行流程。支持多种稳定PHP版本(如7.4、8.0、8.1、8.2等),提供不同变体(CLI、FPM、Apache)以适配不同应用场景,可直接用于开发、测试和生产环境。
预安装PHP开发常用扩展,包括:
mysqli、pdo_mysql、pdo_pgsqlgd、imagick(部分版本)curl、openssl、mbstringjson、xml、zip、redis(部分版本)通过官方提供的工具脚本自定义扩展:
docker-php-ext-install:安装并启用扩展docker-php-ext-enable:启用已安装的扩展docker-php-ext-configure:配置扩展编译参数php.ini文件自定义PHP配置快速搭建统一的本地开发环境,通过目录挂载实现代码实时更新与测试,避免环境差异导致的"在我电脑上能运行"问题。
在CI/CD流程中作为测试环境,快速部署应用并执行单元测试、集成测试,确保代码质量。
配合容器编排工具(Kubernetes/Docker Compose)实现规模化部署,支持负载均衡、滚动更新等生产级特性。
从Docker Hub拉取指定版本镜像:
bash# 格式:docker pull php:[版本]-[变体] # 示例:拉取PHP 8.1 FPM版本 docker pull php:8.1-fpm
4.2.1 运行PHP脚本(CLI模式)
bash# 将当前目录挂载到容器内/app,执行脚本 docker run --rm -v $(pwd):/app php:8.1-cli php /app/script.php
4.2.2 部署Web应用(Nginx+FPM)
使用Docker Compose编排Nginx与PHP-FPM服务:
目录结构
project/ ├── docker-compose.yml ├── nginx/ │ └── default.conf # Nginx配置 └── src/ # PHP应用代码 └── index.php
Nginx配置(nginx/default.conf)
nginxserver { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location ~ \.php$ { fastcgi_pass php-fpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
docker-compose.yml配置
yamlversion: '3' services: nginx: image: nginx:alpine ports: - "80:80" volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf - ./src:/var/www/html depends_on: - php-fpm php-fpm: image: php:8.1-fpm volumes: - ./src:/var/www/html
启动服务
bashdocker-compose up -d
访问http://localhost即可查看PHP应用。
4.3.1 挂载自定义php.ini
bash# 创建自定义php.ini,挂载到容器配置目录 docker run --rm -v $(pwd)/php.ini:/usr/local/etc/php/php.ini php:8.1-cli php -i | grep "Loaded Configuration File"
示例:安装gd扩展(需先安装系统依赖)
bashdocker run --rm -it php:8.1-cli bash # 容器内执行 apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev docker-php-ext-configure gd --with-freetype --with-jpeg docker-php-ext-install -j$(nproc) gd # 验证安装 php -m | grep gd
| 环境变量 | 描述 | 默认值 |
|---|---|---|
| PHP_INI_DIR | PHP配置文件目录 | /usr/local/etc/php |
| PHP_MEMORY_LIMIT | 内存限制 | 128M |
| PHP_MAX_EXECUTION_TIME | 最大执行时间(秒) | 30 |
| PHP_POST_MAX_SIZE | POST数据最大尺寸 | 8M |
| PHP_UPLOAD_MAX_FILESIZE | 上传文件最大尺寸 | 2M |
php:8.1.20-fpm),避免latest标签导致版本不可控您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务