当前位置: 首页 > article >正文

Dockerfile 构建继承父镜像的 ENTRYPOINT 和 CMD

在 Docker 中,Dockerfile 是否继承其父映像的 ENTRYPOINTCMD,取决于 Dockerfile 的编写方式。以下是规则:

1. CMD 的继承

  • 子镜像会继承父映像的 CMD,但如果在子镜像的 Dockerfile 中显式定义了新的 CMD,就会覆盖父映像的 CMD
  • 如果子镜像未指定 CMD,则会保留父映像的 CMD

2. ENTRYPOINT 的继承

  • 子镜像也会继承父映像的 ENTRYPOINT,但如果在子镜像的 Dockerfile 中显式定义了新的 ENTRYPOINT,则会覆盖父映像的 ENTRYPOINT 和 CMD
  • 如果子镜像未定义 ENTRYPOINT,父映像的 ENTRYPOINT 会保留。

3. ENTRYPOINTCMD 的关系

  • 如果两个都定义,CMD 的作用是为 ENTRYPOINT 提供默认参数。
  • 如果覆盖了 ENTRYPOINT,父映像的 CMD 可能失去作用,除非新的 ENTRYPOINT 设计为支持这些参数。

这个行为在 kubernetes 的 yaml 中覆盖容器命令同样适用

此外 WORKDIR 命令也是遵守这个规则:

Dockerfile中的WORKDIR指令在子镜像中也是会继承父镜像的。如果在父镜像中已经设置了WORKDIR,那么在子镜像中,你不需要再显式地设置WORKDIR,它将自动继承父镜像的工作目录。

然而,如果在子镜像中你重新设置了WORKDIR,那么新的设置会覆盖父镜像的WORKDIR指令。

简而言之:

  1. 继承:如果子镜像没有显式设置WORKDIR,它会继承父镜像的工作目录。
  2. 覆盖:如果子镜像中使用了WORKDIR,它会覆盖父镜像的设置。


http://www.kler.cn/a/463424.html

相关文章:

  • 除了淘宝、天猫和京东,其他电商平台的按图搜索商品API返回值结构是怎样的?
  • 信息科技伦理与道德1:研究方法
  • Java编程规约:集合处理
  • 无线AP安装注意事项
  • 深入理解 Android 中的 ComponentInfo
  • 【C语言】_指针运算
  • Python性能分析深度解析:从`cProfile`到`line_profiler`的优化之路
  • 数据结构:排序
  • .NET在中国的就业前景:开源与跨平台带来的新机遇
  • dbN小波构造与求解实例分析-附Matlab代码
  • 数据的简单处理——pandas模块——数据结构(Series和DataFrame对象)
  • 韩国首尔阿里云200M不限流量轻量云主机测试报告
  • Flink源码解析之:如何根据StreamGraph生成JobGraph
  • IP寻址映射与网络通信互联
  • [react] 纯组件优化子
  • JMeter脚本参数化与并发策略
  • Vue 针对浏览器参数过长实现浏览器参数加密解密
  • 人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念
  • FPGA实现HDMI输出
  • 2024树莓派apt源(可用)
  • 【Leetcode 热题 100】79. 单词搜索
  • Amazon Bedrock 实践 - 利用 Llama 3.2 模型分析全球糖尿病趋势
  • uni-app开发-识图小程序-分类识别功能
  • [微服务] - MQ高级
  • 游戏引擎学习第69天
  • doris:基于 Arrow Flight SQL 的高速数据传输链路