COPY指令详解

简介: COPY指令详解

  指令详解

  COPY

  复制指令,从上下文目录中复制文件或者目录到容器里指定路径。

  格式:

  COPY [--chown=:] <源路径1>... <目标路径>

  COPY [--chown=:] ["<源路径1>",... "<目标路径>"]

  [--chown=:]:可选参数,用户改变复制到容器内文件的拥有者和属组。

  <源路径>:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。例如:

  COPY hom* /mydir/

  COPY hom?.txt /mydir/

  <目标路径>:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建。

  ADD

  ADD 指令和 COPY 的使用格类似(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:

  ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。

  ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

  CMD

  类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:

  CMD 在docker run 时运行。

  RUN 是在 docker build。

  作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。

  注意:如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

  格式:

  CMD

  CMD ["<可执行文件或命令>","","",...]

  CMD ["","",...] # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数

  推荐使用第二种格式,执行过程比较明确。第一种格式实际上在运行的过程中也会自动转换成第二种格式运行,并且默认可执行文件是 sh。

目录
相关文章
|
运维 网络虚拟化 5G
带你读《ONAP技术详解与应用实践》之一:网络自动化挑战及ONAP介绍
国内首部系统剖析ONAP的书籍,也是理论性与实战性兼具的网络自动化实践指导书!本书详细全面地介绍了网络自动化的挑战和发展趋势,以及ONAP的概况、架构设计理念、设计原则、各模块实现细节、关键特性、应用场景和案例实践等。通过本书读者可以深入理解ONAP,提升对网络自动化及相关领域的认知。作者及其团队成员均是华为网络开源领域的专家,长期参与社区的治理、贡献和回馈,致力于通过产业协作,打造统一的平台,降低集成成本,加快新技术导入,助力新一代网络运维系统升级。同时,本书也融入了作者及其团队在网络开源领域的深刻洞察和见解,书中分享了华为参与网络开源的实践经验,是电信网络转型的重要参考。
|
10月前
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
人工智能 弹性计算 算法
【云故事探索】NO.5:PETKIT小佩,科技与爱,共绘宠物智能生活新篇章
在数字化浪潮中,中国宠物行业蓬勃发展,国内养宠规模已超2亿,形成千亿市场。成立于2013年的PETKIT小佩,专注智能宠物用品,服务遍布40+国家。面对618、双11等高峰挑战,阿里云ECS弹性扩容助其稳定运行。借助阿里云全球化部署能力,小佩成功出海。最新可视喂食器结合AI算法与OSS存储,提升用户体验。未来,双方将进一步探索AI大模型在宠物行业的应用,持续优化养宠体验。
|
安全 项目管理 数据库
"揭开Dify社区版神秘面纱:一键部署,体验开源项目管理的革命性突破!"
【8月更文挑战第20天】Dify社区版是一款开源项目管理工具,集成任务跟踪、文档协作等功能,助力团队高效协作。本文引导快速部署体验。需Linux服务器,安装Docker及Docker Compose,并能访问GitHub。从GitHub克隆源码,配置`docker-compose.yml`如数据库设置,运行`docker-compose up -d`启动服务。通过`http://&lt;服务器IP&gt;`访问Web界面,建议配置HTTPS增强安全。定期`git pull`及`docker-compose`命令实现维护升级。Dify以其实用性和灵活性,正成为项目管理领域的新兴力量。
2170 1
|
9月前
|
数据可视化 数据挖掘 API
数据驱动如何提升B端产品竞争力?看这篇就够了!
在数字化浪潮下,B端产品(面向企业和组织的产品)成为企业竞争的核心。本文从核心价值、用户体验、数据驱动、生态建设等方面探讨如何打造高价值的B端产品,助力企业提升效率和管理效能。核心价值包括降本增效、提升管理能力、增强决策支持和优化协作体验。用户体验需简化流程、灵活配置、高效呈现数据并实现跨端无缝衔接。数据驱动强调智能分析、自动化决策及数据安全。生态建设则通过API开放、第三方集成和插件市场增强产品粘性。高效协作工具如板栗看板,提供可视化任务管理和多角色权限控制,帮助企业优化协作流程。未来,真正有价值的产品将助力企业持续增长。
|
算法 Java C语言
【数据结构】后缀(逆波兰)表达式的计算以及中缀转后缀的方法
【数据结构】后缀(逆波兰)表达式的计算以及中缀转后缀的方法
2699 1
|
存储 缓存 监控
Vue.js 九个性能优化技巧
【10月更文挑战第16天】Vue.js 性能优化是一个持续的过程,需要我们不断地探索和实践。通过合理使用上述九个技巧,并结合具体的项目需求和性能指标,我们可以不断地提高 Vue.js 应用的性能和用户体验。
|
存储 编解码 自然语言处理
一文读懂字符编码
本文计算机的各种字符编码进行了介绍,
|
Java
Java中的throw和throws:异常处理详解
Java中的throw和throws:异常处理详解
1216 0
|
SQL Oracle Java
数据库三大范式、ER图与实体类、外键约束与级联操作你了解多少?(上)
数据库三大范式、ER图与实体类、外键约束与级联操作你了解多少?
957 0

热门文章

最新文章