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

如何让Docker COPY复制目录本身而非仅内容?是否需先建目录?

在Dockerfile中保留主机目录本身的复制方法

答案是不需要提前用RUN mkdir创建目录,Docker的COPY(或ADD)指令本身就支持保留主机目录的结构,只需调整指令的路径写法即可:

两种实现方式

  • 方式一:指定完整的目标目录路径
    如果想把主机上的my_dir目录完整复制到镜像的/opt/my_dir路径下,直接写:

    COPY my_dir /opt/my_dir
    

    此时Docker会自动创建/opt/my_dir目录,并将主机my_dir里的所有内容复制进去,镜像中就会保留my_dir这个目录本身。

  • 方式二:指定目标父目录
    若要将主机my_dir目录放到镜像的/opt目录下(最终路径为/opt/my_dir),可以写:

    COPY my_dir /opt/
    

    Docker会自动在/opt下创建my_dir目录,再复制内容进去。

关于官方文档说明的补充

官方文档提到:

仅复制目录的内容,不复制目录本身。

这句话的意思是当目标路径是已存在的目录时,会把源目录的内容直接复制到目标目录里,而不会在目标目录下创建源目录。比如如果镜像中已经有/opt目录,写COPY my_dir/ /opt/(注意源目录后面的斜杠),就会把my_dir里的内容直接放到/opt下,而不会生成/opt/my_dir。但只要调整路径写法,就能轻松保留目录本身。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:10:00