Docker基础教程(216)PHP语言Docker 镜像:Docker镜像全攻略:PHP开发者的避坑指南与实战秘籍

1 PHP官方镜像深度解析

PHP官方镜像(library/php)是Docker Hub上最受欢迎的镜像之一,但很多人并不清楚其内部结构和使用技巧。官方镜像主要分为三个分支:cli、fpm和zts1

  • CLI分支:没有开启CGI,不能运行fpm,只适合运行命令行PHP脚本
  • FPM分支:开启了CGI,可用于Web服务,也能运行CLI命令,是LNMP架构的首选
  • ZTS分支:线程安全版本,适用于多线程环境

选择正确的基础镜像至关重要。如果你需要运行Web应用,应选择fpm分支;如果只是运行脚本任务,cli分支更为轻量。

查看官方PHP镜像预安装的扩展很简单:

docker run --rm php:7.2-fpm-alpine php -m

你会发现基础镜像已经包含了Core、ctype、curl、date、dom、fileinfo等常用模块1,但生产环境通常需要更多扩展。

镜像标签的命名规则也很有讲究。例如,php:8.1-fpm-alpine表示PHP 8.1版本,带有fpm功能,基于Alpine Linux构建。Alpine镜像体积小巧,通常只有5MB左右,相比基于Ubuntu的镜像小了近十倍。

2 快速安装PHP扩展的几种方法

为Docker中的PHP安装扩展有多种方法,每种方法各有优劣。以下是三种主流方法:

2.1 使用官方提供的安装命令

官方PHP镜像提供了docker-php-ext-install命令,可以安装核心扩展:

FROM php:7.4-fpm-alpine
RUN docker-php-ext-install pdo_mysql mysqli opcache bcmath

对于PECL扩展,如Redis、Xdebug,需要使用pecl命令:

RUN pecl install redis-5.3.4 && docker-php-ext-enable redis

2.2 使用docker-php-extension-installer

社区开发的docker-php-extension-installer脚本极大简化了扩展安装过程。这是一个全能型脚本,可以自动处理依赖关系:

FROM php:8.1-fpm
# 安装安装器
RUN curl -sSLf \
    -o /usr/local/bin/install-php-extensions \
    https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions && \
    chmod +x /usr/local/bin/install-php-extensions

# 使用单个命令安装多个扩展
RUN install-php-extensions gd intl mysqli pdo_mysql zip opcache redis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值