Docker COPY命令解析:文件夹复制异常及解决方法

创始人
2025-03-06 08:55:48
0 次浏览
0 评论

Docker COPY 复制文件夹的诡异行为

当您构建docker映像时,如果需要在特定目录中复制所有文件和子尾部,则可以在Dockerfile中使用复制命令,但会发生异常行为,从而导致目录结构的变化。
第一个目录结构如下:实际结果是:据观察,尽管“ dir1 ”目录未复制到镜像中,但包括sub -catalogs和文件。
同时,也将文件复制在与`dir1 '的级别相同的级别上。
此现象表明,执行时,复制命令在目录的第一层上执行“解开”操作。
为了更准确地了解复制和添加命令的行为,进行了测试:测试结果揭示了复制/添加命令的几个规则:添加命令和复制命令在文件复制中具有相似的行为。
使用 *作为源时,它指示当前目录中的所有文件。
当源是目录时,复制/添加命令复制目录内容而不是目录本身。
* in copy./* target的相应逻辑是:文件系统中的目录和文件主要是文件。
当您执行`cp*target'时,CP命令将目录视为文件,并复制Målveien的内容,这等同于复制文件本身。
当Docker的复制/添加命令复制目录时,实际上复制了内容的内容。
这种行为模式受到批评,但是Docker似乎还没有调整这种逻辑。
关注Docker开发趋势并参考以下文档:Stackoverflow.com/questions/github.com/moby/moby/moby/issues/github.com/moby/issues/

add和copy的区别

副本并将指令添加到Dockerfile可以复制或添加到主机的资源到容器映像中,并且在构建图像的过程中都完成。
复制和添加指令之间的唯一区别是它是否支持外部URL的资源收集。
复制指令只能从执行Dockerbuild并复制到图像的主机中读取资源。
该添加指令还通过URL来支持来自外部服务器的读取器资源,并将其复制到镜像中。
当满足相同的功能时,建议使用复制命令。
添加指令更好地读取本地焦油文件和对其进行解压缩。
1 复制指令复制指令可以复制构建命令位于镜像文件系统的主机的本地文件或目录。
exec格式使用(建议):复制[src,... dest],推荐,特别适用于路径空间,外壳格式的情况,使用:copysrc ... det2 .AD2 .ADD指令不仅可以将本地文件或目录复制到构建器的主机上,还可以复制文件或复制文件或复制文件的文件或复制文件,还可以复制文件。
而且还要复制与遥控器相对应的文件或目录。
因此,可以认为添加是该副本的改进版本,该版本支持将资源从外部URL添加到镜像文件系统中。
执行格式使用(推荐):添加[SRC,... DEST],特别适用于路径中有空格的情况。
另外,如果源路径的资源更改,则添加指令将无效,并且Dockerfile中的所有后续指令都无法使用缓存。
因此,尝试将腿部指示放在Dockerfile之后。
3 复制改性和添加指令的使用非常相似。
不存在,将创建相应的完整路径。
通配符字符可以在运行指令中的卷发指挥官中使用。

[知识讲解篇-97] dockerfile 参数详解之COPY,ADD

在Dockerfile中,复制指令用于复制镜子中的主机文件或目录。
它具有以下两种句法格式,第二种形式支持空格的路径。
特定语法:SRC:指示源文件或目录,并支持替换标志的符号。
如果SRC是目录,则仅复制目录中的文件,并且不会复制目录本身。
DEST:指示容器中文件系统的目录。
如果目录不存在,将在组装过程中自动创建Docker。
此外,复制指令还支持用户和用户组确定复制到容器的文件的所有者。
使用的示例:copysrc /dest将主机或目录SRC文件复制到容器 /DESTER。
添加指令更加强大。
特定语法:SRC:指示源文件或目录,并支持替换标志的符号。
如果SRC是目录,则仅复制目录中的文件。
DEST:指示容器中文件系统的目录。
同样,添加指令还支持用户和用户组,确定复制到容器的文件的所有者。
使用的示例:addsrc /dest将主机文件或目录SRC复制到容器 /dester。
该团队不仅支持直接复制文件,还支持处理树脂文件并从URL方式接收文件。

Dockerfile之COPY和ADD

副本和添加通常用于下载Docker的副本,其目的是复制情况的状态。
了解建筑的状况很重要。
这意味着在图像构建过程中定义了指定或默认的目录。
Delcy图像的到达都在同一台计算机上,无论它在同一台计算机上,无论是在同一台计算机上,图像构造项目都会失败。
公共和命令以相同的方式相同,但是它们的能力和使用条件有所不同。
如果不适合多层构造,则ADD命令可以实现功能强大的功能,例如解压缩和安装。
使用它时,例如,下懒层上文件的文件传输,以及文件位置的权利和文件的位置有效。
在实际使用中,您可以使用缓存使用cachefile应该选择写作方法。
热门文章
1
OpenWrt Docker环境下部署多... n1刷openwrt上面的DOCKER有什么用独立的程序和结构。Docker将应...

2
Redisson分布式锁深度解析:Red... Redis实现分布式锁+Redisson源码解析在某些场景下,多个进程需要以互斥...

3
Java程序员简历IT技能描述指南:精准... Java程序员简历IT技能怎么写Java程序员简历中的技能描述应该具体、有针对性...

4
Redis分布式锁事故复盘:揭秘超卖背后... 一次由Redis分布式锁造成的重大事故,避免以后踩坑!使用基于Redis的分布式...

5
深度解析Docker:容器技术提升应用部... docker是什么Docker是一种强大的开源容器技术,它将应用程序及其所有依赖...

6
UOSLinux/统信系统Docker容... Linux/统信UOS系统上面设置docker容器开机自启动当服...

7
构建个人在线图书馆:简单书库管理与Doc... 搭建个人图书馆!一个简单的在线个人书库构建一个简单的在线图书馆,您可以使用在线个...

8
Python奇偶数判断与求和:代码实现及... python判断奇偶数代码该方法如下:编写函数ISODD(x)。 如果X不是整数...

9
Python轻松计算BMI:一键掌握体重... 怎样用python计算bmiPython中BMI(体重指数)的计算是一项简单而直...

10
解决Docker容器删除难题:专业清理与... dockerkill不掉Docker的解决方案无法删除容器。容器文件专业实际上是...