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

如何从Docker容器复制文件至Dockerfile构建阶段?

从其他Docker容器复制文件到Dockerfile构建阶段的正确方法

你原来用COPY {container_id}:/some_file /var/root的写法行不通,因为Docker构建阶段是完全隔离的,COPY指令没法直接读取其他容器的文件系统。下面两种方法可以实现需求:

方法一:先导出文件到本地,再用Dockerfile复制

  1. 先通过docker cp命令把容器里的文件复制到本地构建目录(也就是Dockerfile所在的文件夹):
    docker cp {container_id}:/some_file ./local_some_file
    
  2. 然后修改Dockerfile,从本地复制文件到镜像:
    FROM linux/optimize as building_stage
    COPY ./local_some_file /var/root
    

方法二:把容器提交为镜像,用多阶段构建复制

如果不想把文件导出到本地,可以先把目标容器打包成临时镜像:

  1. 提交容器为镜像:
    docker commit {container_id} my_temp_image
    
  2. 然后在Dockerfile里用COPY --from从这个临时镜像复制文件:
    FROM linux/optimize as building_stage
    COPY --from=my_temp_image /some_file /var/root
    

注意:第二种方法会把整个容器的文件系统打包成镜像,如果容器里有很多冗余内容,可能会增大镜像体积,按需选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:35:25