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

如何向现有Docker镜像添加文件?Windows容器递归添加文件夹问题咨询

解决方案

以下是两种实现将宿主机多级目录递归添加到Windows Docker镜像的常用方案:

方法1:通过Dockerfile构建新镜像(最推荐,可复现性高)

  • 首先将你需要上传的整个目录结构(包含folder、subfolder1、subfolder2及所有子文件)全部放到Docker构建上下文目录,也就是你执行docker build命令的目录中
  • Docker的COPY指令默认支持递归复制目录结构,无需额外参数。如果你要将所有目录原封不动放到镜像的C:\myapp路径下,直接在Dockerfile中添加如下行即可:
    COPY ./ C:\myapp\
    
  • 执行构建命令生成新镜像:
    docker build -t 自定义新镜像名 .
    

方法2:给已运行的容器添加文件后提交为新镜像

如果你不想走完整的镜像构建流程,可以直接给运行中的容器传文件后提交生成新镜像:

  • 首先用docker cp命令递归传输宿主机目录到容器中,该命令默认递归复制所有子目录和文件,格式如下:
    docker cp 宿主机存放目标目录的路径\. 容器ID/容器名:容器内目标路径
    
    举个实际使用的例子:你的目录都放在宿主机D:\temp\docker_files下,容器ID为win20h2-001,要放到容器的C:\myapp路径下,执行:
    docker cp D:\temp\docker_files\. win20h2-001:C:\myapp\
    
  • 确认容器内目录结构和文件完整无误后,执行commit命令生成新镜像:
    docker commit 容器ID/容器名 自定义新镜像名
    

注意事项

  • 两种方法都会完整保留你给出的多级子目录结构,无需单独处理每个子文件夹
  • Windows容器操作时注意路径格式使用Windows标准的反斜杠,避免和Linux路径格式混淆
  • 用Dockerfile构建时建议添加.dockerignore文件,过滤不需要传入镜像的缓存、临时文件,减小镜像体积

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:57:04