问题是你的 docker CMD 是运行 php-fpm
https://github.com/docker-library/php/blob/bb16de8a711d1ba1dc76adf4665b3b1c06a06922/7.3/stretch/fpm/Dockerfile#L266 https://github.com/docker-library/php/blob/bb16de8a711d1ba1dc76adf4665b3b1c06a06922/7.3/stretch/fpm/Dockerfile#L266
并且容器启动后,您无法更改加载到内存的 php 配置。
您需要重新启动 php-fpm 才能应用更改,但重新启动会杀死容器,并且您会丢失所有更改。要为 php 添加一些库,您应该创建自己的 docker 映像并将所有库安装到映像中,而不是在运行时安装它。
也可以在 github 上检查这个问题https://github.com/docker-library/php/issues/331 https://github.com/docker-library/php/issues/331
所以答案是创建您自己的映像并使用 docker RUN 命令安装所有必需的扩展
FROM php:7-fpm
RUN apt-get install php-pdo php-mysql
之后你必须构建这个图像
docker build -t php:7-fpm-mysql .
将其推送到某个 docker 注册表。例如 hub.docker.com
docker push php:7-fpm-mysql
注意:自 PHP 5.5.* 起,不推荐使用 php mysql 扩展,请改用 PDO