启动Docker镜像时候,ENTRYPOINT 和CMD这两者指令的写法有什么不同和区别?

ENTRYPOINTCMD在Dockerfile中都用于指定容器启动时执行的命令,但它们之间存在一些关键的区别和不同的用途:

1. 基本用途和行为差异

  • ENTRYPOINT 定义了容器启动时执行的基础命令,使得容器像一个可执行程序。ENTRYPOINT让你能够指定容器启动时的主命令,并且可以在docker run时通过附加命令行参数来传递额外的参数给这个命令。

  • CMD 既可以指定容器启动时的默认命令,也可以提供默认的给ENTRYPOINT指定命令的参数。如果ENTRYPOINT被定义,CMD中的内容会作为参数传递给ENTRYPOINT

2. 写法上的区别

  • 执行格式:两者都支持两种格式——shell格式和exec格式。
    • Shell格式:CMD command param1 param2ENTRYPOINT command param1 param2
    • Exec格式:CMD ["command", "param1", "param2"]ENTRYPOINT ["command", "param1", "param2"]
  • 参数传递:当使用exec格式时,如果同时使用了ENTRYPOINTCMD,那么CMD中的内容会作为参数传递给ENTRYPOINT。这意味着,你可以定义一个固定的ENTRYPOINT(比如应用程序的启动命令),然后通过修改CMD来调整传递给这个命令的参数。

3. 实际使用差异

  • 如果只使用CMD,那么在docker run时可以通过附加的命令行参数来覆盖CMD指定的命令。
  • 如果设置了ENTRYPOINT,则ENTRYPOINT指定的命令将作为容器的主命令执行,而CMD提供的任何内容都将作为参数传递给ENTRYPOINT。这意味着,使用ENTRYPOINT可以让容器的行为更像是一个单独的应用,而CMD则提供了灵活性,允许用户在启动容器时指定额外的参数。

4. 覆盖行为

  • docker run命令中,通过指定命令行参数,可以覆盖CMD指令,但ENTRYPOINT指令定义的命令不会被覆盖,除非使用--entrypoint选项。

综上所述,ENTRYPOINTCMD在一起使用时提供了强大的灵活性,允许Docker容器以更预期和可控的方式运行。选择使用哪一个,或如何组合使用,取决于你的具体需求,比如是否需要容器行为像一个单独的可执行程序,以及是否需要在启动容器时传递额外的参数。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖店类目报白什么意思?什么类目需要报白?这次给你讲明白!

我是电商珠珠 不少新手在选择类目的时候,有些类目却无法选择,系统显示需要报白才可以。那什么是报白?怎么报白?今天我就一次性给你们讲清楚。 抖店类目报白什么意思? 根据官方的说法,报白就是针对一些比…

经验分享:水牛社怎么做?

本人也就是通过他慢慢学习成长起来的。还是一个网友推荐的,现在他对我来说算是大佬了,已经单飞了,好久都没有联系了,呵呵,真是人往高处走,水往低处流啊。 做网赚会经常和一些网络小白聊天,聊着…

回调函数、回调地狱、解放方法Promise的用法

回调函数 回调函数的定义非常简单:一个函数被当做一个实参传入到另一个函数(外部函数),并且这个函数在外部函数内被调用,用来完成某些任务的函数。就称为回调函数回调函数的两种写法(实现效果相同): const text () > {docum…

使用Ora2Pg迁移oracle数据到openGauss

下载说明: Perl DBD: http://search.CPAN.org #只需在搜索输入框中输入模块的全名(例如:DBD::Oracle、DBD::Pg) Ora2Pg:https://ora2pg.darold.net/start.html在Windows下,应该安装Strawbe…

Java中可以实现的定时任务策略

Java中可以实现的定时任务策略 文章目录 Java中可以实现的定时任务策略自定义独立线程JDK提供的调度线程池-**ScheduledExecutorService**内核是Spring的Task执行调度quartz调度 #mermaid-svg-mQ9rPqk0Ds3ULnvD {font-family:"trebuchet ms",verdana,arial,sans-seri…

个人项目介绍4:三维园区篇

个人项目介绍: 地图铁路线路篇 地球卫星篇 火车站篇 三维园区篇 项目需求: 1.按比例全景显示三维园区 2.精确显示园区内设备设施 3.实时显示设备报警信息 4.显示园区内摄像监控设备,并可点击显示监控视频流 5.显示园区内的重大危险源和风险分布 …

ASPICE SYS3架构设计文档编写规范

一、文档目的与范围 本规范旨在指导新能源汽车电池管理系统(BMS)的开发团队按照ASPICE (Automotive SPICE) 的SYS3级别要求来编写详细的系统架构设计文档。文档应涵盖从概念设计到具体实现的所有关键系统架构决策和设计细节,确保系统的可追溯性、完整性及一致性。 二、文…

PCL 路面点云标线提取(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 算法来自本人自创。实现效果如下图所示,具体实现原理看代码即可。 二、代码实现 #include

bean的管理方式

默认情况下,spring项目启动时,会把bean对象全部创建好放到ioc容器 主动获取bean对象:getBean里面传入bean的名称或bean的类型 注意如果没有主动设置bean的名称,则默认名称是对应类名的首字母小写 在ioc容器中,bean对…

Django 视图

请求对象: HttpRequest 对象 get():返回字符串,如果该键对应有多个值,取出该键的最后一个值。 GET:有相同的键,就把所有的值放到对应的列表里 取值格式:对象.方法。 def runoob(request): name re…

今天分享一个好看的输入法皮肤相信每个人心里住着一个少女心我们美化一下她吧

标题: 白日梦皮肤上线,百度输入法助你开启梦幻之旅! 正文: 大家好呀!今天我来给大家安利一款超级梦幻的百度输入法皮肤——“白日梦”系列! 这款皮肤的设计灵感来源于我们内心深处的白日梦,充…

14. C++继承与虚函数

【继承基础概念】 继承可以让本类使用另一个类的非私有成员,提供共用成员的类称为父类或基类,使用共用成员的类称为子类或派生类,子类创建对象时会包含继承自父类的成员。 继承的优势是减少重复定义数据,当本类需要在另一个类的…

【设计模式】工厂模式与抽象工厂模式

工厂方法 以图书馆管理系统为例,需要API提供查询不同专业分类的书目列表,一般实现, class LibraryManager { public:LibraryManager() {}//按专业分类查询BookList Query(Type type) {if(type TA) {return ...;} else if (type TB) {} el…

L1-009 N个数求和

MD...提交过了好几次才通过。 第三个测试点: 需要使用long long,要求长整型。干脆就把int全部替换成long long。 第五个测试点: 随便试出来的,我输入了2 1/2 -1/2,发现啥都没打印出来。原来是忽略了结果是0的情况,如果整数部分和分子部分都…

LabVIEW高温摩擦磨损测试系统

LabVIEW高温摩擦磨损测试系统 介绍了一个基于LabVIEW的高温摩擦磨损测试系统的软件开发项目。该系统实现高温条件下材料摩擦磨损特性的自动化测试,通过精确控制和数据采集,为材料性能研究提供重要数据支持。 项目背景 随着材料科学的发展,…

git revert 撤回之前的几个指定的提交

文章目录 Intro操作命令-n 选项 参考 Intro 在开发过程中,有的时候一开始只是一个小需求,可以改着改着事情超出了控制,比如说我一开始只是想调整一个依赖包的版本,可是改到后来类库不兼容甚至导致项目无法启动。 这个时候我就想&…

npm市场发布包步骤

1.打开npm官网npm官网 2.创建自己的账号 3.查看当前npm的镜像源, 如果出现淘宝的镜像源则需要切换成官方的镜像源 npm config get registry //查看镜像源 https://registry.npm.taobao.org/ //淘宝的镜像源 https://registry.npmjs.org/ //官方的镜像源 …

GB/T 35752-2017 经编复合土工织物检测

经编复合土工织物是指以玻璃纤维纱或合成纤维长丝为主要原料,通过双轴向经编与非织造布缝编而成的经编复合土工布。 GB/T 35752-2017 经编复合土工织物测试项目: 测试要求 测试标准 纵向和横向标称断裂强度 GB/T 21825 GB/T 15788 单位面积质量偏差…

Linux文本处理三剑客:awk(常用匹配模式)

在Linux操作系统中,grep、sed、awk被称为文本操作“三剑客”,上三期中,我们将详细介绍grep、sed、awk的基本使用方法,希望能够帮助到有需要的朋友。 1、前言 awk作为一门编程语言还有很多内容,我们继续学习awk。 网…

线程安全之死锁

目录 一、概念 二、例子 三、死锁相关面试题目 一、概念 死锁主要发生在有多个依赖锁存在时,会在一个线程试图以另一个线程相反顺序锁住互斥量时发生 死锁使得一个或多个线程被挂起而无法继续执行,最糟糕的是,这种情况还不容易被发现。 在一个线程中对一个已经加锁的普通锁…