
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
jtreminio/php:8.1jtreminio/php:8.0jtreminio/php:7.4https://hub.docker.com/r/jtreminio/php/tags/
https://github.com/jtreminio/php-docker/blob/master/Dockerfile-php-fpm
对于通过命令行界面(CLI)运行的PHP项目,可按以下方式操作。
在PHP项目中创建Dockerfile
dockerfileFROM jtreminio/php:8.1 COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD [ "php", "./your-script.php" ]
然后,运行以下命令构建并运行Docker镜像:
shelldocker build -t my-php-app . docker run -it --rm --name my-running-app my-php-app
运行单个PHP脚本
对于许多简单的单文件项目,编写完整的Dockerfile可能不太方便。这种情况下,可直接使用PHP Docker镜像运行PHP脚本:
shelldocker run -it --rm \ --name my-running-script \ -v "$PWD":/usr/src/myapp \ -w /usr/src/myapp \ jtreminio/php:8.1 php your-script.php
注意:所有PHP镜像变体均包含PHP CLI。
我创建了仅包含CLI的无PHP-FPM版本镜像。
https://hub.docker.com/r/jtreminio/php-cli
我创建了包含Nginx/Apache的全功能版本镜像。
https://hub.docker.com/r/jtreminio/php-nginx
https://hub.docker.com/r/jtreminio/php-apache
这些镜像基于Ondřej Surý的PPA构建。
镜像内置了最常用的PHP模块。完整列表如下。
Composer 安装在 /usr/local/bin/composer。
PHP-CLI INI和PHP-FPM配置文件在所有版本中均保存在标准位置,以便简化管理:
/etc/php/fpm.ini/etc/php/cli.ini/etc/php/fpm.conf提供了两个空白INI文件,用于编写自定义INI设置:
使用 -v your-file.ini:/etc/php/cli-custom.ini 添加自定义设置。这两个文件最后加载,因此其内容将优先于其他所有设置。
PHP-FPM包含由https://github.com/phpdocker-io/base-images%E5%88%9B%E5%BB%BA%E7%9A%84 stdout 和 stderr 日志修复。
PHP-FPM监听端口 9000,并由runit自动运行:
shelldocker container run -it --rm \ jtreminio/php:8.1 *** Running /etc/my_init.d/00_regen_ssh_host_keys.sh... *** Running /etc/my_init.d/10_syslog-ng.init... Dec 20 03:50:53 14ec8b232a61 syslog-ng[13]: syslog-ng starting up; version='3.13.2' *** Booting runit daemon... *** Runit started as PID 22 Dec 20 03:50:54 14ec8b232a61 cron[26]: (CRON) INFO (pidfile fd = 3) Dec 20 03:50:54 14ec8b232a61 cron[26]: (CRON) INFO (Running @reboot jobs) [20-Dec-2018 03:50:54] NOTICE: fpm is running, pid 32 [20-Dec-2018 03:50:54] NOTICE: ready to handle connections [20-Dec-2018 03:50:54] NOTICE: systemd monitor interval set to 10000ms
可使用环境变量设置大量PHP INI配置。
https://github.com/jtreminio/php-docker/blob/master/Dockerfile-env
可在此了解更多详细信息
shelldocker container run -it --rm \ jtreminio/php:8.1 php -i | grep display_errors 100:display_errors => Off => Off
对比
shelldocker container run -it --rm \ -e PHP.display_errors=1 \ jtreminio/php:8.1 php -i | grep display_errors 100:display_errors => STDOUT => STDOUT
许多模块默认已安装并启用:
更多模块已安装但默认未启用:
PHP 7.4还包含:
可使用PHP_INI_SCAN_DIR环境变量启用这些模块。创建了一个特殊快捷方式以便更轻松地添加模块:
shelldocker container run -it --rm \ -e PHP_INI_SCAN_DIR=:/p/amqp:/p/mailparse \ jtreminio/php:8.1 php -v
/p目录包含指向其他目录的符号链接(如果PHP版本支持该模块):
/p/amqp -> /etc/php/extra-mods/amqp /p/apcu -> /etc/php/extra-mods/apcu /p/geoip -> /etc/php/extra-mods/geoip /p/gnupg -> /etc/php/extra-mods/gnupg /p/imagick -> /etc/php/extra-mods/imagick /p/lua -> /etc/php/extra-mods/lua /p/mailparse -> /etc/php/extra-mods/mailparse /p/memcached -> /etc/php/extra-mods/memcached /p/mongodb -> /etc/php/extra-mods/mongodb /p/oauth -> /etc/php/extra-mods/oauth /p/pdo_sqlite -> /etc/php/extra-mods/pdo_sqlite /p/radius -> /etc/php/extra-mods/radius /p/raphf -> /etc/php/extra-mods/raphf /p/redis -> /etc/php/extra-mods/redis /p/solr -> /etc/php/extra-mods/solr /p/sqlite3 -> /etc/php/extra-mods/sqlite3 /p/ssh2 -> /etc/php/extra-mods/ssh2 /p/stomp -> /etc/php/extra-mods/stomp /p/uploadprogress -> /etc/php/extra-mods/uploadprogress /p/uuid -> /etc/php/extra-mods/uuid /p/xdebug -> /etc/php/extra-mods/xdebug /p/zmq -> /etc/php/extra-mods/zmq
可在PHP_INI_SCAN_DIR中添加任意数量的模块,确保以:开头。
可通过PHP Modules Toggled via Environment Variables了解更多详细信息。
Xdebug默认已安装但未启用:
shelldocker container run -it --rm jtreminio/php:8.1 php -v PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:15) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
要启用Xdebug(仅在非公共服务器上!),可使用PHP_INI_SCAN_DIR环境变量:
shelldocker container run -it --rm \ -e PHP_INI_SCAN_DIR=:/p/xdebug \ jtreminio/php:8.1 php -v PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:15) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans
注意:/p/xdebug中的前置:。
xdebug.remote_host默认设置为host.docker.internal。https://github.com/docker/for-linux/issues/264%E3%80%82%E5%BF%85%E9%A1%BB%E7%9B%B4%E6%8E%A5%E4%BC%A0%E9%80%92%E4%B8%BB%E6%9C%BAIP%E6%88%96%E4%BD%BF%E7%94%A8%E7%BD%91%E5%85%B3%E3%80%82%E5%A4%A7%E5%A4%9A%E6%95%B0%E6%83%85%E5%86%B5%E4%B8%8B%60172.17.0.1%60%E5%8F%AF%E7%94%A8%EF%BC%9A
shelldocker container run -it --rm \ -e PHP_INI_SCAN_DIR=:/p/xdebug \ -e PHP.xdebug.client_host=172.17.0.1 \ jtreminio/php:8.1 php -i | grep xdebug.client_host 639:xdebug.client_host => 172.17.0.1 => 172.17.0.1
/usr/bin/xdebug处创建了一个辅助脚本,帮助调试CLI应用程序。
要使用它,直接调用它而不是php:
shelldocker container run -it --rm \ jtreminio/php:8.1 xdebug -v PHP 8.1.2 (cli) (built: Jan 24 2022 10:42:15) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.2, Copyright (c) Zend Technologies with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans
以下是 jtreminio/php 相关的常用 Docker 镜像,适用于 Web 开发、内容管理、传统应用 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

来自真实用户的反馈,见证轩辕镜像的优质服务