PHP是一种服务器端脚本语言,主要设计用于Web开发,同时也可作为通用编程语言使用。PHP代码可嵌入HTML中,或与多种模板引擎和Web框架配合使用,通常由Web服务器的原生模块或CGI解释器处理。
本镜像为https://hub.docker.com/_/php%E7%9A%84%60arm64v8%60%E6%9E%B6%E6%9E%84%E6%9E%84%E5%BB%BA%E7%89%88%E6%9C%AC%EF%BC%8C%E4%B8%93%E9%97%A8%E7%94%A8%E4%BA%8EARM64%E6%9E%B6%E6%9E%84%E7%8E%AF%E5%A2%83%E4%B8%ADPHP%E5%BA%94%E7%94%A8%E7%9A%84%E5%AE%B9%E5%99%A8%E5%8C%96%E9%83%A8%E7%BD%B2%E3%80%82%E6%9B%B4%E5%A4%9A%E5%85%B3%E4%BA%8E%E5%A4%9A%E6%9E%B6%E6%9E%84%E9%95%9C%E5%83%8F%E7%9A%84%E4%BF%A1%E6%81%AF%EF%BC%8C%E8%AF%B7%E5%8F%82%E8%A7%81https://github.com/docker-library/official-images#architectures-other-than-amd64%E3%80%82
arm64v8架构cli、apache、fpm、alpine等变体,满足不同部署场景需求docker-php-ext-configure、docker-php-ext-install、docker-php-ext-enable等脚本,简化PHP扩展安装流程php.ini-development和php.ini-production默认配置文件,支持通过$PHP_INI_DIR/conf.d/目录自定义配置cli变体运行PHP脚本、后台任务或开发工具apache变体直接部署PHP Web应用,集成Apache服务器fpm变体配合Nginx等反向代理,适用于生产环境的高并发场景alpine变体适合对镜像体积和资源占用有严格要求的场景amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x(https://github.com/docker-library/official-images#architectures-other-than-amd64%EF%BC%89在PHP项目根目录创建Dockerfile:
dockerfileFROM arm64v8/php:8.2-cli COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD ["php", "./your-script.php"]
构建并运行镜像:
console$ docker build -t my-php-app . $ docker run -it --rm --name my-running-app my-php-app
对于简单的单文件项目,可直接使用镜像运行脚本,无需编写Dockerfile:
console$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp arm64v8/php:8.2-cli php your-script.php
检查已安装扩展
首先通过以下命令检查镜像中预安装的扩展,避免重复安装:
console$ docker run --rm arm64v8/php:8.2-cli php -m
扩展安装工具
镜像提供以下工具简化扩展管理:
docker-php-ext-configure:配置扩展编译选项docker-php-ext-install:编译安装PHP核心扩展并自动启用docker-php-ext-enable:手动启用已安装的扩展docker-php-source:提取PHP源代码(用于扩展编译,需在同一镜像层删除以减小体积)PHP核心扩展安装示例
以安装gd扩展(适用于FPM变体)为例:
dockerfileFROM arm64v8/php:8.2-fpm RUN apt-get update && apt-get install -y \ libfreetype-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd
注意:需手动安装扩展依赖的系统库。若需简化依赖管理,可参考社区工具https://github.com/mlocati/docker-php-extension-installer%E3%80%82
PECL扩展安装示例
通过pecl install安装PECL扩展,再用docker-php-ext-enable启用:
dockerfileFROM arm64v8/php:8.2-cli RUN pecl install redis-5.3.7 \ && pecl install xdebug-3.2.1 \ && docker-php-ext-enable redis xdebug
建议指定扩展版本以确保兼容性。PECL扩展需逐个安装(避免安装失败被忽略),但可一次性启用多个。
其他扩展(非核心/非PECL)安装示例
对于未包含在PHP核心或PECL中的扩展,可通过源码编译安装:
dockerfileFROM arm64v8/php:8.2-cli RUN curl -fsSL '[扩展源码URL]' -o module-name.tar.gz \ && mkdir -p /tmp/module-name \ && sha256sum -c "[校验值] module-name.tar.gz" \ && tar -xf module-name.tar.gz -C /tmp/module-name --strip-components=1 \ && rm module-name.tar.gz \ && docker-php-ext-configure /tmp/module-name --enable-module-name \ && docker-php-ext-install /tmp/module-name \ && rm -r /tmp/module-name
Apache变体
--sysctl net.ipv4.ip_unprivileged_port_start=0,然后使用--user指定用户--user指定用户FPM变体
直接通过docker run的--user参数指定用户(支持容器内用户名/组或UID/GID):
console$ docker run -it --rm --user 1000:1000 arm64v8/php:8.2-fpm
默认配置文件
镜像包含两套默认配置:
php.ini-development:开发环境配置(默认启用详细错误信息)php.ini-production:生产环境配置(默认禁用调试信息,启用性能优化)配置文件位于$PHP_INI_DIR(通常为/usr/local/etc/php)。
使用生产环境配置
dockerfileFROM arm64v8/php:8.2-fpm-alpine # 切换到生产环境配置 RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
自定义配置
通过将配置文件挂载或复制到$PHP_INI_DIR/conf.d/目录来自定义配置:
dockerfileFROM arm64v8/php:8.2-cli # 添加自定义配置 COPY custom.ini "$PHP_INI_DIR/conf.d/"
生产环境建议启用OPcache扩展提升性能,参考PHP官方OPcache文档。
arm64v8/php:<version>-cli用途:命令行脚本、工具或作为基础镜像
特点:
/usr/local/bin/php)php-cgi二进制文件(用于PPM等工具)arm64v8/php:<version>-apache用途:直接部署PHP Web应用
特点:
mod_phpmpm_prefork模块基础用法示例
Dockerfile部署:
dockerfileFROM arm64v8/php:7.2-apache COPY src/ /var/www/html/
构建并运行:
console$ docker build -t my-php-app . $ docker run -d -p 80:80 --name my-running-app my-php-app
直接运行(无Dockerfile):
console$ docker run -d -p 80:80 --name my-apache-php-app -v "$PWD":/var/www/html arm64v8/php:7.2-apache
自定义DocumentRoot
通过环境变量修改Apache的网站根目录:
dockerfileFROM arm64v8/php:7.1-apache ENV APACHE_DOCUMENT_ROOT /path/to/new/root RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
arm64v8/php:<version>-fpm用途:配合反向代理(如Nginx)的生产环境部署
特点:
安全警告:FastCGI协议不加密,禁止将FPM端口直接暴露到公网,仅在私有容器网络中使用。
arm64v8/php:<version>-alpine用途:资源受限环境或对镜像体积有严格要求的场景
特点:
git、bash),需手动安装此镜像默认阻止安装Debian的PHP包(避免冲突的PHP安装)。正确解决方法是使用docker-php-ext-install、pecl或phpize安装扩展,而非通过apt-get install php-XXX。
临时解决方法(不推荐,可能导致冲突):
dockerfileRUN rm /etc/apt/preferences.d/no-debian-php
镜像中PHP软件的许可证信息参见PHP官方许可证页面。
镜像可能包含其他软件(如基础镜像中的Bash等),其许可证需由用户自行确认合规性。更多自动检测的许可证信息可参见https://github.com/docker-library/repo-info/tree/master/repos/php%E3%80%82
作为预构建镜像的使用者,您有责任确保对镜像的使用符合所有包含软件的相关许可证。
以下是 arm64v8/php 相关的常用 Docker 镜像,适用于 Web 开发、内容管理、传统应用 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务