You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Docker容器内/usr/local/etc/php/目录挂载到本地?

正确挂载Docker容器内/usr/local/etc/php目录到本地的方法

问题根源

  • 直接挂载空本地目录到容器目录时,Docker会用本地空目录覆盖容器内原有内容,导致两边目录都为空。
  • 使用COPY指令时,若本地./config/php不存在会报错;创建空目录后COPY无报错,但因为本地目录本身无内容,容器内目录自然为空——COPY是将本地内容复制到容器,而非反向操作。

正确步骤

1. 先从容器导出原有配置文件到本地

先启动一个临时容器,将容器内的/usr/local/etc/php目录内容复制到本地./config/php:

# 替换php:your-image-tag为你实际使用的PHP镜像标签,比如php:8.2-fpm
docker run --rm -v $(pwd)/config/php:/tmp/php-copy php:your-image-tag cp -r /usr/local/etc/php/. /tmp/php-copy/

执行后,本地./config/php目录会包含容器原有的conf.d、php.ini-development、php.ini-production文件。

2. 正常挂载目录到容器

现在可以用docker run或docker-compose挂载目录,确保容器与本地配置同步:

使用docker run命令:

docker run -v $(pwd)/config/php:/usr/local/etc/php php:your-image-tag

使用docker-compose.yml:

version: '3.8'
services:
  php:
    image: php:your-image-tag
    volumes:
      - ./config/php:/usr/local/etc/php

可选:通过Dockerfile预加载配置

如果需要将配置文件打包到镜像中,先完成步骤1导出文件到本地,再在Dockerfile中添加:

COPY ./config/php/ /usr/local/etc/php/

构建镜像后,启动容器时若不挂载volume,会使用镜像内的配置;若挂载volume,则优先使用本地配置。

内容的提问来源于stack exchange,提问作者Niloy Rony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:42:12