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

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.lryc.cn/news/513218.html

相关文章:

  • 46. Three.js案例-创建颜色不断变化的立方体模型
  • Linux系统离线部署MySQL详细教程(带每步骤图文教程)
  • 【数据仓库】hive on Tez配置
  • Kubernetes Gateway API-3-TLS配置
  • C++ 设计模式:原型模式(Prototype Pattern)
  • 计算机网络 (12)物理层下面的传输媒体
  • SpringCloud 系列教程:微服务的未来(三)IService接口的业务实现
  • 测试带宽上行方法
  • 天天跳绳(???)
  • module ‘django.db.models‘ has no attribute ‘FieldDoesNotExist‘
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之10 方案再探之1:特定于领域的模板 之1 随想交流
  • Excel将混乱的多行做成1列
  • Django项目部署到服务器
  • SpringBoot集成Flowable
  • 大模型从零开始——预训练之分词 Tokenization
  • Python下载包缓慢时怎么修改镜像源
  • 每日一练 | 时延和抖动
  • 嵌入式开发之使用 FileZilla 在 Windows 和 Ubuntu 之间传文件
  • 腾势D9风光不再?中期改款能否及时“救火”
  • OpenCV-Python实战(11)——边缘检测
  • 【智行安全】基于Synaptics SL1680的AI疲劳驾驶检测方案
  • 机器学习随机森林回归时间序列预模型中时间滑动窗口作用以及参数设置
  • 【Rust自学】7.5. use关键字 Pt.2 :重导入与换国内镜像源教程
  • 自定义luacheck校验规则
  • python钉钉机器人
  • 汇编学习笔记
  • 混合并行训练框架性能对比
  • 基于Docker+模拟器的Appium自动化测试(二)
  • 数据结构之线性表之链表(附加一个考研题)
  • etmem