
senasi/phpPHP Docker镜像是由官方维护的容器化PHP运行环境,旨在提供便捷、一致的PHP应用部署方案。该镜像基于Debian或Alpine等轻量级Linux发行版构建,支持PHP 5.6及以上各主版本,可灵活适配不同应用的运行需求,是PHP应用开发、测试和生产部署的标准化基础环境。
多版本支持:提供从PHP 5.6到最新稳定版的完整版本谱系,满足不同应用的兼容性需求,标签格式包含主版本(如8.2)、变体(如fpm/cli)及基础系统(如alpine)。
扩展定制:通过官方工具链(docker-php-ext-install、docker-php-ext-configure)支持按需安装PHP扩展(如mysqli、gd、redis等),并可配置扩展参数。
多架构兼容:支持amd64、arm64、ppc64le等主流架构,适配服务器、开发机及嵌入式设备。
轻量与安全:提供Alpine Linux变体(标签含-alpine),体积较Debian版本减少50%以上;定期同步PHP官方安全更新,保障运行环境安全性。
灵活集成:可直接作为CLI工具使用,或通过PHP-FPM与Nginx、Apache等Web服务器配合,构建完整Web服务架构。
Web应用开发:本地开发环境快速搭建,避免系统级PHP版本冲突,支持热重载与调试。
生产环境部署:作为Web应用后端服务,配合Nginx处理PHP请求,通过容器编排工具(如K8s)实现弹性伸缩。
CI/CD流程:在持续集成管道中作为代码构建、测试环境,确保构建一致性。
微服务架构:作为PHP微服务的基础镜像,与数据库、缓存等服务通过容器网络协同工作。
bashdocker run -it --rm php:latest php -a
将本地脚本挂载至容器并运行:
bashdocker run -it --rm -v $(pwd):/app php:latest php /app/your-script.php
快速启动PHP内置Web服务器(开发场景):
bashdocker run -d -p 8000:8000 -v $(pwd):/app php:latest php -S 0.0.0.0:8000 -t /app
以PHP-FPM+Nginx为例,使用docker-compose构建服务:
yamlversion: '3.8' services: php-fpm: image: php:8.2-fpm-alpine volumes: - ./php-app:/var/www/html # 挂载PHP应用代码 - ./php.ini:/usr/local/etc/php/php.ini # 自定义PHP配置 restart: always nginx: image: nginx:alpine ports: - "80:80" volumes: - ./php-app:/var/www/html - ./nginx.conf:/etc/nginx/conf.d/default.conf # Nginx配置 depends_on: - php-fpm restart: always
nginxserver { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location ~ \.php$ { fastcgi_pass php-fpm:9000; # 连接php-fpm服务 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
启动服务:
bashdocker-compose up -d
使用官方工具docker-php-ext-install安装内置扩展(以mysqli为例):
bashdocker run -it --rm php:latest sh -c "docker-php-ext-install mysqli && php -m | grep mysqli"
bash# Debian基础镜像 docker run -it --rm php:latest sh -c "apt-get update && apt-get install -y libjpeg-dev && docker-php-ext-configure gd --with-jpeg && docker-php-ext-install gd" # Alpine基础镜像 docker run -it --rm php:alpine sh -c "apk add --no-cache libjpeg-turbo-dev && docker-php-ext-configure gd --with-jpeg && docker-php-ext-install gd"
镜像标签格式:{PHP版本}-{功能变体}-{基础系统},常见组合:
| 标签示例 | 说明 |
|---|---|
latest | 最新稳定版(默认含CLI) |
8.2 | PHP 8.2 CLI版本 |
8.2-fpm | PHP 8.2 + PHP-FPM(FastCGI进程管理器) |
8.2-cli-alpine | PHP 8.2 CLI + Alpine Linux(轻量) |
7.4-fpm-buster | PHP 7.4 FPM + Debian Buster(兼容性好) |
生产环境建议使用具体版本号(如8.2.17-fpm-alpine)锁定版本,避免自动更新导致兼容性问题。
/usr/local/etc/php/php.ini/usr/local/etc/php/conf.d/(可挂载自定义.ini文件)/usr/local/etc/php-fpm.conf(FPM变体)docker-php-ext-install:安装PHP内置扩展docker-php-ext-configure:配置扩展编译参数docker-php-source:临时解压PHP源码(用于扩展编译)php -m:查看已加载扩展docker pull php:{版本}获取安全补丁,避免使用EOL(生命周期结束)的PHP版本。-v挂载至宿主机或使用数据卷,避免容器删除导致数据丢失。--memory、--cpus限制容器资源,防止过度占用系统资源。root运行,生产环境可通过--user指定非root用户增强安全性。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务