Dockerfile 指令 ADD 和 COPY介绍

一、ADD指令

ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中。

其格式是: ADD  源路径  目标路径

如:

#test
FROM ubuntu
MAINTAINER hello
ADD test1.txt test1.txt
ADD test1.txt test1.txt.bak
ADD test1.txt /mydir/
ADD data1 data1
ADD data2 data2
ADD zip.tar /myzip

有如下注意事项:

1、如果源路径是个文件,且目标路径是以 / 结尾, 则docker会把目标路径当作一个目录,会把源文件拷贝到该目录下。

如果目标路径不存在,则会自动创建目标路径。

2、如果源路径是个文件,且目标路径是不是以 / 结尾,则docker会把目标路径当作一个文件。

如果目标路径不存在,会以目标路径为名创建一个文件,内容同源文件;

如果目标文件是个存在的文件,会用源文件覆盖它,当然只是内容覆盖,文件名还是目标文件名。

如果目标文件实际是个存在的目录,则会源文件拷贝到该目录下。 注意,这种情况下,最好显示的以 / 结尾,以避免混淆。

3、如果源路径是个目录,且目标路径不存在,则docker会自动以目标路径创建一个目录,把源路径目录下的文件拷贝进来。

如果目标路径是个已经存在的目录,则docker会把源路径目录下的文件拷贝到该目录下。

4、如果源文件是个归档文件(压缩文件),则docker会自动帮解压。

二、COPY指令

COPY指令和ADD指令功能和使用方式类似。只是COPY指令不会做自动解压工作。

以上所述是小编给大家介绍的Dockerfile 指令 ADD 和 COPY介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Docker Dockerfile的使用实例

    Dockerfile FROM 基础镜像 MAINTAINER 维护这信息 RUN 运行什么命令,在命令前面加上RUN ADD 往里面加点文件,copy文件,会自动解压 WORKDIR 当前的工作目录 VOLUME 目录挂载 EXPOSE 开放的端口 RUN 进程要一直运行 实战:构建nginx wget  http://xiazai.jb51.net/201611/yuanma/nginx-1.9.3(jb51.net).rar wget ftp://ftp.csx.cam.ac.uk/pub

  • docker在已有的tomcat镜像上打新的镜像的Dockerfile编写说明介绍

    如果需要将某个文件替换或者添加到旧的tomcatimage中,形成一个新的image,需要在dockerfile中做一下操作 FROM old_tomcat #这里可以使用docker官方的镜像,以下说明都是在此基础上的实例 MAINTAINER ****************** #如果需要替换原有的配置文件或者脚本 ADD web.xml /usr/local/tomcat/webapps/manager/WEB-INF/ ADD tomcat-users.xml /usr/local/t

  • Dockerfile指令详解

    什么是Dockerfile Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像.它们简化了从头到尾的流程并极大的简化了部署工作.Dockerfile从FROM命令开始,紧接着跟随者各种方法,命令和参数.其产出为一个新的可以用于创建容器的镜像. 当你在使用 Docker构建镜像的时候,每一个命令都会在前一个命令的基础上形成一个新层.这些基础镜像可以用于创建新的容器.本篇文章将手把手教您如何从基础镜像,一步一步,一层一层的从Dockerfile构建容器的

  • 编写最佳的Dockerfile的方法

    Dockerfile的语法非常简单,然而如何加快镜像构建速度,如何减少Docker镜像的大小却不是那么直观,需要积累实践经验.这篇博客可以帮助你快速掌握编写Dockerfile的技巧. 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用于学习. 我已经使用Docker有一段时间了,其中编写Dockerfile是非常重要的一部分工作.在这篇博客中,我打算分享一些建议,帮助大家编写更好的Dockerfile. 目标: 更快的构建速度 更小的Docker镜像大小 更少的Dock

  • docker官方镜像下载及使用Dockerfile创建镜像的方法

    1.登陆docker hut官方网站:https://hub.docker.com/ 2.search centos 3.docker pull centos:7.2.1511 4.创建Dockerfile文件: [root@vmhost centos7.2]# cat Dockerfile [plain] view plain copy FROM centos:7.2.1511 MAINTAINER wanghongwei(wanghongwei@4paradigm.com) RUN yum

  • Docker 基础之Dockerfile命令详解

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写定制镜像的 Dockerfile. 基本结构 Dockerfile 由一行行命令语句组成,并且支持已 # 开头的注释行.一般而言,Dockerfile 的内容分为四个部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令.例如: # This dockerfile uses the Ubu

  • Dockerfile 部署java web的环境详解

    Dockerfile 构建java web 环境 Dockfile 介绍: Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将这些Dockerfile指令翻译真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile.Docker程序将读取Dockerfile,根据指令生成定制的image.相比image这种黑盒子,Doc

  • Docker中镜像构建文件Dockerfile与相关命令的详细介绍

    前言 使用docker build命令或使用Docker Hub的自动构建功能构建Docker镜像时,都需要一个Dockerfile文件.Dockerfile文件是一个由一系列构建指令组成的文本文件,docker build命令会根据这些构建指令完成Docker镜像的构建.本文将会介绍Dockerfile文件,及其中使用的构建指令. 1. Dockerfile文件使用 docker build命令会根据Dockerfile文件及上下文构建新Docker镜像.构建上下文是指Dockerfile所在

  • Dockerfile 指令 ADD 和 COPY介绍

    一.ADD指令 ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录.以及一个URL标记的文件 拷贝到镜像中. 其格式是: ADD  源路径  目标路径 如: #test FROM ubuntu MAINTAINER hello ADD test1.txt test1.txt ADD test1.txt test1.txt.bak ADD test1.txt /mydir/ ADD data1 data1 ADD data2 data2 ADD zip.tar /myzip 有如下注意事

  • 浅谈docker Dockerfile 指令 VOLUME 介绍

    在介绍VOLUME指令之前,我们来看下如下场景需求: 1)容器是基于镜像创建的,最后的容器文件系统包括镜像的只读层+可写层,容器中的进程操作的数据持久化都是保存在容器的可写层上.一旦容器删除后,这些数据就没了,除非我们人工备份下来(或者基于容器创建新的镜像).能否可以让容器进程持久化的数据保存在主机上呢?这样即使容器删除了,数据还在. 2)当我们在开发一个web应用时,开发环境是在主机本地,但运行测试环境是放在docker容器上. 这样的话,我在主机上修改文件(如html,js等)后,需要再同步

  • dockerfile指令构建docker镜像的示例代码

    目录 初识Dockerfile 编写一个自己的docker 镜像: DockerFile docker build . 命令 查看镜像是如何生成的 初识Dockerfile Dockerfile就是用来构建docker镜像的构建文件!命令脚本! 通过这个脚本可以生成镜像,镜像是一层层的,脚本是一行行的命令,每行命令都是一层 dockerfile是面向开发的,我们以后要发布项目,作镜像,就需要编写dockerfile文件,这个文件十分简单. Dockerfile镜像之间成为了企业交付的标准,必须掌

  • 详解docker中Dockerfile指令创建镜像

    写在前面: 继续docker的学习,昨天用docker成功跑了tomcat,但是在centos中镜像跑的容器手动装jdk和tomcat,今天学习用Dockerfile创建镜像,并在上面搭建java环境,跑一个spring boot小项目. Dockerfile: Dockerfile由一行行命令语句组成,并且支持用"#"开头作为注释,一般的,Dockerfile分为四部分:基础镜像信息,维护者信息,镜像操作指令和容器启动时执行的指令. Dockerfile的书写规则及指令使用方法 Do

  • Vue 自定义指令实现一键 Copy功能

    先看下效果图: 指令是啥? 按照惯例,先请出官方的解释: 指令 (Directives) 是带有 v- 前缀的特殊特性.指令特性的值预期是单个 JavaScript 表达式 (v-for 是例外情况,稍后我们再讨论).指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM. 再按照惯例,大家 ( 假装 ) 看不懂,然后我来举个栗子解释一番...好,还是不知所云,本文结束 ( Ctrl + F4 ) ,下一篇. 为了避免上述情况出现,就不解释了.实际上官方提供了很多内置指令,

  • 关于angularJs指令的Scope(作用域)介绍

    每当一个指令被创建的时候,都会有这样一个选择,是继承自己的父作用域(一般是外部的Controller提供的作用域或者根作用域($rootScope)),还是创建一个新的自己的作用域,当然AngularJS为我们指令的scope参数提供了三种选择,分别是:false,true,{}:默认情况下是false. 1.scope = false JS 代码: html 代码: result: 修改文本框的内容,两个名字都会变,实际上修改的是同一个$scope的name属性. 2. scope=true

  • 对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍

    在Vue中,自定义指令的生命周期,有5个事件钩子:1-bind 被绑定, 2-inserted 被插入, 3-update 开始更新, 4-componentUpdated 更新完成,5-unbind 解除绑定.我们可以设置指令在某一个事件发生时的具体行为. 例子如下: 页面一进后, 在控制台中设置一个新值:通过控制台设置的新name 再设置一个新值:通过控制台设置的新name 最后点击解绑,解除绑定(解除绑定之后,id="app"的Dom和vm的实例之间解除mvvm的绑定关系): 代

  • Python中的引用与copy介绍

    目录 Python中的引用和copy 1.引用整型数据及列表 2.传递引用 3.copy模块中的copy()和deepcopy() Python中的引用和copy 1.引用整型数据及列表 这里以整型数据类型及列表为例 对于赋值字符串.整型.元组等不可更改数据的变量,其保存的仅是值,改变新变量中的值并不会影响原来变量中的值 origin = 1 new = origin print("new = ",new) new = 2 print("origin = ",ori

  • Vue自定义指令的使用详细介绍

    目录 1. 概述 2. 钩子函数 3. 自定义全局指令 4. 自定义局部指令 5. 使用自定义指令实现权限管理 6. 使用自定义指令实现表单验证 1. 概述 除了核心功能默认内置的指令,Vue也允许注册自定义指令.有的情况下,对普通 DOM 元素进行底层操作,这时候就会用到自定义指令绑定到元素上执行相关操作. 自定义指令分为: 全局指令和局部指令,当全局指令和局部指令同名时以局部指令为准. 局部指令:只对当前实例(或组件)生效 全局指令:对全部实例(或组件)都生效 2. 钩子函数 自定义指令常用

随机推荐