Dockerfile 中的“COPY”和“ADD”命令有什么区别? - vip共享吧
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们


导航菜单
  • 网站首页
  • IT技术笔记
    • Java教程
    • MySql数据库
    • PHP开发
    • Python教程
    • JavaScript
    • SEO优化
    • 常用工具
  • 好资源福利
    • 会员账号共享
  • 网站模板源码
    • 小程序源码
    • 网站源码
  • 共享网络资源
  • 更多功能
    • 留言吐槽
    • 文章归档
    • 我的邻居
    • 史上今日
    • 视频解析
    • 高清壁纸
    • 公告动态
    • 广告合作
    • 关于我们
秒懂百科

Dockerfile 中的“COPY”和“ADD”命令有什么区别?

2024/9/5 韩俊  共享网络资源 775 0

创建Dockerfile时,可以使用两个不同的命令来构建上下文。构建上下文意味着包括您希望从本地计算机获取的文件和目录,这些文件和目录在创建时位于容器中。这些文件可能是您本地计算机中的目录、您要从中下载文件的URL,或者您希望按原样或在解压缩tarball文件后包含的压缩tarball文件。

我们可以使用两种不同的指令将本地机器中构建上下文中的文件添加到Docker容器中。这些是COPY和ADD指令。尽管它们执行的任务几乎相同,但是它们的工作方式略有不同。所以,这里的问题是为什么我们有两个不同的命令来执行相同的工作,我们应该使用哪一个?

在本文中,我们将讨论相同的内容。因此,事不宜迟,让我们讨论ADD和COPY指令的用例。

添加指令

我们在Dockerfile中使用的ADD指令是一条相对较旧的指令,从一开始就与Docker一起使用。ADD指令可以做的不仅仅是从本地主机复制目录或文件。我们可以使用ADD指令从外部链接/URL(如Github、Bitbucket等)中提取文件或目录。ADD指令还可用于提取压缩文件,如存档或tarball文件。但是,有时,如果您实际上不想提取档案,则可能会导致问题。

ADD指令的语法是-


$ ADD <source path> <destination path>


ADD指令的一些重要用例是-

  • 将文件和目录从本地机器复制到图像。

  • 例如,如果我们想简单地将本地主机系统中/home/user/Dekstop/app目录中的文件复制到Docker镜像中的/app目录中,我们可以将此指令嵌入到Dockerfile中-


    $ ADD /home/user/Desktop/app /app


    在这种情况下,守护进程只将源目录的内容复制到目标目录,包括元数据。由于我们没有提到尾部斜杠,它不会复制目录本身。

  • 提取本地存储的tarball文件。

  • ADD指令还可用于提取具有以下格式的压缩tarball文件或存档-bzip2、xz、gzip2。ADD指令会自动提取在Docker容器的目标文件夹内创建的目录中的内容。比如我们想把sample.tar.gz文件解压到容器内部的/app目录下,可以使用如下命令。


    $ ADD /home/user/sample.tar.gz /app


    这与在我们的主机中提取tarball的tarball命令的操作完全相似。

  • 从URL下载目录或文件

  • ADD指令的这一特性类似于wget-P命令的工作方式。当我们尝试构建Docker镜像时,我们可以使用ADD指令直接从给定的URL下载文件并将其存储在容器内的某个位置。这样做的命令是-


    $ ADD
    https://www.asamplelink.com/test/sampledocuments/mysamplefile.pdf /app


    当镜像构建完成后,我们可以在容器启动时访问这些文件。

    复制指令

    我们可以将Dockerfile中的COPY指令视为ADD指令的进化版本。创建COPY指令是为了消除Docker开发人员之间的混淆。COPY指令的唯一功能是将文件从主机上的源目录复制到容器上的目标目录。如果我们将源文件称为tarball文件,它不会将其提取到容器中,而只是按原样复制它。

    此外,COPY指令不将URL参数作为源。使用COPY指令复制文件的语法是-


    $ COPY <source> <destination>


    例子-


    $ COPY /home/user/sample/files /app


    最后的想法!

    总而言之,如果您希望简单地将文件和目录从本地主机复制到容器环境,建议您仅使用COPY指令。您必须尽可能避免使用ADD指令。如果你想解压或下载文件,你可以使用RUN指令和普通的Linux命令。

    在本文中,我们讨论了如何使用ADD和COPYDockerfile指令、它们的用例、两者之间的根本区别以及一些动手示例和命令。

    点赞:0 分享

    上一篇
    Dockerfile 中的 CMD 和 ENTRYPOINT 有什么区别?
    下一篇
    投资决策的一些重要特征是什么?
    作者头像 作者名称 作者性别
    韩俊

    热门推荐

    1 恨透你经典句子
    2 钻石广告经典句子
    3 形容广场经典句子
    4 梦回唐朝经典句子
    5 草原歌曲经典句子
    6 上司开业祝福语大全简短

    评论列表

    取消回复

    •  
      Login

      韩俊

      趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

      退出登陆
      • 10358文章
      • 455评论
      • 80微语
  • 广告赞助

  • 二零二五年07月
    一二三四五六日
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
  • 分类

    • 网站模板源码
    • IT技术笔记
    • 好资源分享
    • 共享网络资源
  • 最新文章

      • 婚礼新郎祝福语简短励志
        • 嫁女结婚祝福语简短精辟
          • 祝医生节简短祝福语
            • 大童生日祝福语简短
              • 女孩参军祝福语大全简短
                • 敬平辈祝福语简短霸气
                  • 经典的黄句子
                    • 教师祝福语句简短唯美
  • 热门文章

    • 酷狗音乐VIP账号 酷狗音乐会员账号共享2017.01.29更新
    • 芒果tv vip会员账号 芒果tv会员账号共享2017.01.29更新
    • 爱奇艺vip账号 爱奇艺/PPS会员账号共享2016.12.12更新
    • 优酷/土豆vip会员账号 优酷会员账号共享2017.01.29更新
    • 活动:免费获得爱奇艺VIP/PPS会员账号50天以上的使用权!
    • 酷我音乐VIP账号 酷我音乐会员账号共享2016.12.31更新
    • 暴风影音会员账号 暴风影音会员账号共享2016.12.31更新
    • m1905会员账号 m1905会员账号共享2016.10.21更新
  • 最新评论

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/10.jpg

      你丫的 文章写得太好了 支持下!![F3...

    • https://www.vipshare8.com/content/templates/meta/Static/images/avatar.jpg

      很棒!刚在某网站看到这个,很欣赏,可惜下...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3861064027

      呃呃呃 oooo

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了111:根据激活的时间有一年的有效期!

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=792480561

      到2025就到期了吗?

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      [blockquote]打卡时间:16:...

    • https://www.vipshare8.com/content/templates/meta/Static/images/tx/7.jpg

      俊哥,想借用迅雷一用!但需要手机验证!看...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=3293901900

      感谢大大的分享

    • https://www.vipshare8.com/content/uploadfile/202103/thum-490d1614564497.png

      回复了好奥v:如果没有解析成功,可以切换接口...

    • https://www.vipshare8.com/content/templates/meta/Api/qqtx.php/?qq=131241242441

      现在视频解析网站怎么用不了啦?

  • 网站统计 I 当前在线:377人

    • 本站管理:1位
    • 用户总数:593位
    • 置顶文章:2篇
    • 日志总数:10358篇
    • 微语总数:80条
    • 评论总数:455条
    • 标签总数:83条
    • 页面总数:8页
    • 分类总数:14个
    • 链接总数:16条
    • 运行天数:3723天
    • 最后更新:7月9日
    • 登录
    • 注册
    • 找回
    Copyright © 2025vip共享吧网站地图 网站备案豫ICP备19004194号-1

    免责声明:本站资源仅供用于学习和交流,本站部分素材内容来源于网络,如有侵权/投稿等,请及时联系站长.

    • 首页
    • 秒懂百科 秒懂百科
    • 搜索
    • 史上今日

    大家都在搜

    • 阴阳师
    • 电影抢先看
    • 酷我音乐VIP账号
    • 喜马拉雅FM会员账号
    • 搜狐视频会员账号
    • 好省
    • 最新电影
    • 华数tv会员账号分享
    • 酷狗会员账号共享
    • 网赚网盘
    • swoole
    • PHP
    • 咪咕会员账号
    • seo优化
    • VIP电影
    • 小程序
    • 
    • 