首页 > 其他分享 >研究docker中---ADD和COPY的区别

研究docker中---ADD和COPY的区别

时间:2023-03-15 19:45:43浏览次数:34  
标签:创建 --- ADD 镜像 docker COPY dockerfile

前言:最近学到docker搭建镜像了,小小研究一下ADD和COPY的区别【dockerfile中指令大小都可以,建议大写】

(虽然网上一搜都有,但是自己动手会有很多不同的感受,多多动手,仅做一个小随笔,技术不精)

1、创建docker容器,直接run创建,稍微简单一点【不用先拉取镜像,run会自动拉取】

    · docker run -d --name T0314 nginx [:latest]   【写不写都可以,不写默认最新版本】

【run 拉取到的镜像】

【记得确认创建成功    docker  ps  [-a] 】

2、上传一个压缩文件,用于研究区别【理论上说,ADD会提供一定的文件处理能力】

(上课的时候,是针对tag文件,我上传的是zip文件做个对比)【mobax直接上传】

【可以重命名】

3、创建dockerfile(暂时还没搞懂dockerfile的创建是否需要指定目录,这里直接建在了家目录下)    

【注意:dockerfile和其所需要的一切文件都应该在同级目录下!】

vi  dockerfile  (dockerfile --- 由一系列指令和参数构成的脚本文件)

【   补充知识: 目录标识

-    返回当前目录的上一次打开过的目录;

~  家目录(root用户是/root,对于其他用户是在/home下的以username命名的家目录);

.    代表当前目录;

..   代表上一级目录 ;

/  根目录                                               】

4、开写,首行 FROM 开头(每个指令建一层)【压缩文件重命名为 NEW,图上指令错了会报错哦,是FROM】

【直接保存dockerfile,然后创建镜像】

docker  -t  build   (果然能够正常运行的颜色都更美丽)

【创建成功,接下来就是查看ADD后的文件】

【创建容器,进入容器内查看,注意:dockerfile是把源文件传入创建的镜像文件内,所以要到容器内去查看镜像文件  】

    · docker exec -it name bash

(容器内没有 ll ,要用 ls  -l ,也可以自己写alias)

· 结论 --- 无法解压.zip文件

5、使用COPY试一下

· 结论 ------ 无法解压.zip文件

6、尝试.tag文件(步骤不赘述了)

  (1)ADD成功解压,情况如下

  (2)COPY不能解压,情况如下

【补充知识:

创建镜像的时候,不小心重复步骤,直接删除报错,那么就强制删除 (删除镜像一定要删id才能删干净)

------------------第一篇博客就完成啦,仅作笔记,如果对各位有帮助就是意外之喜了。

标签:创建,---,ADD,镜像,docker,COPY,dockerfile
From: https://www.cnblogs.com/ismohney-and-curlie/p/17216212.html

相关文章

  • 孤狼老师-接口测试自动化(Python版完整版-接口封装
       高内聚,低耦合; 把GET和Post方法封装:       getattr:   ......
  • Vue.js 数据代理-回顾Object.defineProperty方法
    视频<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>回顾Object.defineproperty方法</title> </head> <body> <scripttype="text/javascript"......
  • haproxy2.7.4 docker
      发布:sudodockerrun-itd--restart=always--net=host--namehaproxy-v/opt/docker/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:rohaproxy:2......
  • 初级 - redis 安装
    1、redis概述redis官网地址:https://redis.io/redisgithub地址:https://github.com/redis/redis/tree/6.22、redis安装2.1redisdocker-compose安装1、先去gith......
  • 力扣---1662. 检查两个字符串数组是否相等
     给你两个字符串数组word1和word2。如果两个数组表示的字符串相同,返回true;否则,返回false。数组表示的字符串 是由数组中的所有元素按顺序连接形成的字符串......
  • docker redis常用命令
    一、dockerredis服务部署1.下载官方redis镜像dockerpullredis2.运行镜像,返回容器id。此时redis服务已经开启dockerrun-d-p6379:6379redis3.进入容器(客户端......
  • 算法 -- 正则表达式匹配 (动态规划)
    原题:10.正则表达式匹配困难3.5K相关企业给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个......
  • Spring-事件监听 源码解析
    当我们的系统运行在一定的关键节点的时候,它会通过广播器发布一些事件出去;而我们系统中存在着部分监听器,它对某些关键节点的事件是感兴趣的,所以它会去订阅这部分消息;当这些......
  • day92 - 插槽
    插槽介绍作用:让父组件可以向子组件指定位置插入HTML结构,是一种组件间通信的方式,适用于父组件==>子组件分类默认插槽,具名插槽,作用域插槽默认插槽子组件title从父组件......
  • Docker基础知识 (28) - 在 Dockerfile 中以 scratch 为基础镜像 (FROM scratch)
     通常使用Docker镜像时会以一个已存在的镜像为基础,在其上进行定制,这个已存在的镜像就是基础镜像。在DockerFile中必须指定基础镜像,FROM指令就是用于指定基础镜像,......