首页 > 其他分享 >dockerfile 指令 ADD 和 COPY 的区别

dockerfile 指令 ADD 和 COPY 的区别

时间:2024-06-20 23:11:19浏览次数:13  
标签:解压 文件 URL ADD 指令 COPY dockerfile

 

Dockerfile 中的 ADD 和 COPY 指令都用于将文件或目录从构建上下文复制到 Docker 镜像中,但它们之间存在一些关键差异:

 

基本复制功能:

  COPY: 纯粹地将从构建上下文(即执行 docker build 命令时指定的目录及其子目录)中的文件或目录复制到镜像中指定的路径。

  ADD: 除了具备 COPY 的基本复制功能外,还提供了额外的功能。

  

ADD 的额外功能:

  解压归档文件: ADD 指令如果遇到压缩文件(如 .tar, .tar.gz, .zip 等),会自动解压这些文件到目标路径。
  从 URL 下载文件: ADD 还支持从URL来源复制文件,这意味着可以直接从互联网上下载文件并将其添加到镜像中。

 

推荐使用:

  由于 COPY 指令更为简单且用途明确,对于大多数仅需复制文件或目录的场景,推荐使用 COPY。

  当你需要利用 ADD 的额外功能(如解压或从URL下载)时,才应选择使用 ADD。

 

安全性与简洁性:

  COPY 被认为是更安全且易于理解的选择,因为它行为直接,没有隐含的额外处理逻辑。

  ADD 因为其额外的特性可能引入更多潜在问题(如不期望的解压行为或网络下载失败),所以在不需要这些特性时,避免使用 ADD 可以减少复杂性和潜在错误。


总结下,选择 COPY 或 ADD 应基于实际需求:如果只需要简单的复制操作,则使用 COPY;如果需要解压归档文件或从URL下载文件,则使用 ADD。
在满足相同功能需求的情况下,倾向于使用 COPY 以保持 Dockerfile 的清晰和简洁。

 

Link:https://www.cnblogs.com/farwish/p/18259654

标签:解压,文件,URL,ADD,指令,COPY,dockerfile
From: https://www.cnblogs.com/farwish/p/18259654

相关文章

  • 【Addressable】Catalog文件大小优化
    在Unity中使用Addressables系统时,AddressableCatalog文件的大小可能会影响加载时间和性能。以下是一些降低AddressableCatalog文件大小的方法:1.减少冗余的地址标签确保每个Addressable资产只使用必要的标签。避免给每个资产附加过多的标签,因为标签会增加Catalog文......
  • .Net8 AddKeyedScoped键值key注册服务异常
    异常描述:Thisservicedescriptoriskeyed.Yourserviceprovidermaynotsupportkeyedservices.场景:.Net8 WebAPI应用程序中使用AutoFac替代了默认的DI容器当使用键值注册服务后:builder.Services.AddKeyedSingleton<ICache,BigCache>("big");builder.Services.AddKey......
  • 好消息,飞桨统一底层Paddle.Runtime.win_x64包发布
         好消息,飞桨统一底层Paddle.Runtime.win_x64包发布,该包包括提速15%以及内存泄漏问题的优化。本包为飞桨框架CPU版通用运行时包,仅适用于windows平台。当前发布版本为2.6.1,为百度飞桨Paddle库的C++版本的优化版。自带C++运行时,win10,win11,以及winserver2014以上均​绿色......
  • 通过find 查找文件copy到指定目录
    方法一命令如下:findsrc_dir-name"access.log.2011102[2-6]*"-execcp{}dst_dir\;拷贝文件到远程主机上的目标目录的命令:findsrc_dir-name"access.log.2011102[2-6]*"-execscp{}用户名@主机ip:dst_dir\; 方法二findsrc_dir-name"access.log.2011102[......
  • 11、docker-dockerfile--构建docker的镜像文件和容器的挂载卷方法 方式二挂载
    挂载方式二:此方式是在生成镜像的同时也实现挂载1、现在本机创建一个目录文件存放脚本·mkdir/home/docker-volume-test2、创建脚本文件·vim  /home/docker-volume-test/dockerfile01·内容如下:FROMcentos//表示......
  • WPF customized Image control can add watermark , save and restore
     //usercontrol//xaml<UserControlx:Class="WpfApp173.ImageZoomPanWatermark"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml&quo......
  • React+TS前台项目实战(十)-- 全局常用组件CopyText封装
    文章目录前言CopyText组件1.功能分析2.代码+详细注释3.使用方式4.效果展示总结前言今天这篇主要讲项目常用复制文本组件封装,这个组件是一个用于拷贝文本的React组件,它提供了拷贝,国际化和消息提示的功能CopyText组件1.功能分析(1)将content作为其内容,表......
  • npm login 或者 npm adduser 之后 遇见 Public registration is not allowed
    npmlogin或者npmadduser之后遇见Publicregistrationisnotallowed其实是因为npm镜像地址有问题使用下方指令将镜像切回即可正确完成登录操作npmconfigsetregistryhttps://registry.npmjs.org/今天就总结到这里啦!后续会不定时更新哦,欢迎在评论区交流。如......
  • 基于Python+scopy实现的渗透测试工具对网站URL以及端口进行漏洞检测系统
    目录摘要2Abstract3第1章绪论51.1研究背景与意义51.2国内外研究现状和发展趋势51.3本论文主要工作及组织结构61.3.1论文主要研究工作61.3.2论文的组织结构6第2章web安全评估及测试的介绍82.1渗透测试82.2web安全评估8第3章渗透测试及安......
  • caddy run 命令详解
     caddyrun这个子命令启动Caddy进程,并可选地使用初始配置文件进行引导,并无限期地阻塞,直到服务器停止运行,即run是在"守护进程"模式(前台)中运行Caddy。使用参数:[--config<path>[--adapter<name>]][--envfile<path>][--environ][--resume][--watch][--pidfile<......