k8s之command、args 与 CMD、ENTRYPOINT的对应关系

一、介绍

Pod中command、args与Dockerfile中ENTRYPOINT、CMD的覆盖关系。

具体的是 command 命令代替 ENTRYPOINT 的命令行,args代替 CMD 的参数。但是 并不是说 他们是一个等价的覆盖关系。

二、Dockerfile

> FROM busybox:latest
> ENTRYPOINT ["printenv"]
> CMD ["HOSTNAME", "KUBERNETES_PORT"]

Dockerfile中的CMD和ENTRYPONIT同时支持Shell格式和Exec格式

Shell格式

CMD echo "hello docker" 
ENTRYPOINT echo "hello docker" 

Exec格式(不推荐)

ENTRYPOINT ["echo", "hello docker"] 
CMD ["echo", "hello docker"] 

只有shell形式才会直接获取相关环境变量,如$HOME

Exec格式需要以shell脚本的方式去执行才能获取相关环境变量

CMD ["sh", "-c", "echo hello $NAME"]

三、Pod yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    run: demo
  name: demo
  namespace: demo
spec:
  containers:
  - command:
    - echo
    args:
    - "小A"
    image: liruilong/my-busybox
    imagePullPolicy: Always
    name: demo

以Shell方式运行(注意,和;)

command: ["/bin/sh"]
args: ["-c", "while true; do echo hello; sleep 10;done"]
或
args: ["/bin/sh", "-c", "while true; do echo hello; sleep 10;done"]

读取环境变量

env:
- name: MESSAGE
  value: "hello world"
command: ["/bin/echo"]
args: ["$(MESSAGE)"]

四、覆盖关系

ENTRYPOINTCMDcommandargs 结果启动命令
exec-1  cmd-1ENTRYPOINT追加CMDexec-1 cmd-1
exec-1  cmd-1exec-2cmd-2command追加argsexec-2 cmd-2
exec-1  cmd-1cmd-2ENTRYPOINT追加argsexec-1 cmd-2
exec-1  cmd-1exec-2commandexec-2

五、总结

command 和 args 均没有指定,这种情况会使用 Dockerfile 的配置的 ENTRYPOINT 和 CMD。

command 和 args 都指定了,那么 Dockerfile 的配置 ENTRYPOINT 和 CMD 被忽略,执行 command 并追加上 args 参数。

command 没有指定,指定了 args,那么 Dockerfile 中配置的 ENTRYPOINT 的命令行会被执行,CMD 会被 args 中填写的参数覆盖,追加到 ENTRYPOINT 中。

command 指定,args 没有指定,那么 Dockerfile 默认的 ENTRYPOINT 配置会被忽略,执行输入的 command,同时 Dockerfile 中的 CMD 也会被忽略。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【目标检测】---- YOLOX 旷视2021

1. YOLOX的改进 YOLOX 以YOLO v3作为baseline主要做了以下改进: ①. 输入端的图像增强(Mosaic、Mixup、RandomHorizontalFlip、ColorJitter、多尺度训练) ②. Backbone(Darknet53 SPP) ③. Neck (FPN PAN) ④. Head…

给大家讲个笑话,拿了个offer,因为体检查出脂肪肝,公司把我拒绝了!

春暖花开好时节,给大家讲个笑话吧:拿了个offer,因为体检查出脂肪肝尿酸高,公司把我拒绝了,真够恶心人的。网友一问:轻度还是中度脂肪肝?答:中度。网友二问:什么行业&…

用Owncast构建直播服务器

什么是 Owncast ? Owncast 是一个开源的自托管解决方案,具有高度可定制性和灵活性,可以在几分钟内部署在本地或云端,是独立于任何供应商或服务提供商的广播视频、课程、演示文稿、游戏、谈话或任何其他内容的解决方案。 Owncast 和…

vue中的数据代理、

一、vue中的数据代理 通过vm对象来代理data对象中属性的操作(读/写)数据代理的好处就是可以更加方便操作data中的数据基本原理:通过Objectdefineproperty()把data对象中所有属性添加到vm上,然后为每一个添加的属性制定一个hetter…

秒懂算法 | 基于主成分分析法、随机森林算法和SVM算法的人脸识别问题

本文的任务与手写数字识别非常相似,都是基于图片的多分类任务,也都是有监督的。 01、数据集介绍与分析 ORL人脸数据集共包含40个不同人的400张图像,是在1992年4月至1994年4月期间由英国剑桥的Olivetti研究实验室创建。 此数据集下包含40个目录,每个目录下有10张图像,每个…

[技术杂谈]小米手机如何将锁屏快捷方式放桌面

小米手机锁屏快捷键可以通过锁屏小部件完成设置。小米10x亲测目前还有效。 小米手机锁屏常见的是手机屏幕自动熄灭锁屏和电源键锁屏,除了这两种方式外还可以通过使用小部件快速锁屏。以下是设置锁屏快捷方式的详细说明: 演示环境: 演示设备…

《安富莱嵌入式周报》第306期:开源独轮车,Cortex-M85修订版r1发布,Terathon图形数学库,不断变革的IDE开发环境,各个厂家总动员

往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1TT411Y7fq 《安富莱嵌入式周报》第306期:开源…

让chatGPT当我的老师如何? 通过和chatGPT交互式学习,了解在ES中,一条JSON数据是如何写到磁盘上的

最近一直有一个问题,如鲠在喉。争取早一天解决,早一天踏踏实实的睡觉。 问题是:在ES中,一条JSON数据是如何写入到磁盘上的? 如何解决这个问题?我想到了chatGPT,还有lucene的学习资料。这篇文章&…

接触过的第一台电脑-90年代的x86与如今的树莓派

#勤写标兵挑战赛#最早接触电脑是在幼儿园,那时候电脑下象棋都要输入命令行的。后来小学时候有了电脑课,要穿鞋套的。满满的回忆。那个时代电子产品更新很慢的,一台电脑可以用5年,286-386-486-586。486电脑的特点是:处理…

Redis主从集群搭建

1.首先需要按照单点的Redis1.1需要安装Redis所需要的依赖:yum install -y gcc tcl1.2下载redis的tar文件点击此处下载1.3解压缩tar -xzf redis-6.2.4.tar.gz1.4解压缩后进入redis.6.2.4目录cd redis-6.2.41.5运行编译命令:make && make install1…

【Spring6】| Bean的作用域

目录 一:Bean的作用域 1. singleton(单例) 2. prototype(多例) 3. 其它scope 4. 自定义scop(了解) 一:Bean的作用域 1. singleton(单例) (1…

Python基于周立功盒子的二次开发的准备工作

Python基于周立功盒子的二次开发的准备工作 一、基本介绍     基于周立功的二次开发是python通过调用zlgcan.dll,来实现CAN卡的通讯收发报文的,在python中通过ctypes模块调用c++动态库的接口函数(zlgcan.dll),我们需要根据我的电脑选择相对应版本的dll,比如64位的操…

使用宝塔面板快速搭建web网站,并内网穿透实现公网远程访问

目录 1. 环境安装 2. 安装cpolar内网穿透 3. 内网穿透 4. 固定http地址 5. 配置二级子域名 6. 创建一个测试页面 宝塔面板简单几步搭建本地web站点,并做内网穿透,实现公网用户也可以正常远程访问,无需公网IP,无需设置路由器…

yolov5的基本配置

yolov5的基本配置train.pydata.yaml数据集标签文件格式:总结train.py def parse_opt(knownFalse):parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, defaultROOT / yolov5s.pt, helpinitial weights path)parser.add_argument(--cfg, typestr, defau…

STP详解

STP STP全称为“生成树协议”(Spanning Tree Protocol),是一种网络协议,用于在交换机网络中防止网络回路产生,保证网络的稳定和可靠性。它通过在网络中选择一条主路径(树形结构),并…

一款接口自动化神器—开源接口测试平台Lim(Less is More)

前言 对于传统的实现接口自动化的方案往往是搭建自动化框架,通过excel编写用例来驱动执行,例如常见的万金油技术栈组合:excel(编写用例)、pytest(用例执行)、allure(测试报告)等。 很多公司往往是通过自动化框架而非…

自然语言处理: 知识图谱的十年

动动发财的小手,点个赞吧! NLP 中结合结构化和非结构化知识的研究概况 自 2012 年谷歌推出知识图谱 (KG) 以来,知识图谱 (KGs) 在学术界和工业界都引起了广泛关注 (Singhal, 2012)。作为实体之间语义关系的表示,知识图谱已被证明与…

自然语言大模型介绍

1 简介 最近一直被大语言模型刷屏。本文是周末技术分享会的提纲,总结了一些自然语言模型相关的重要技术,以及各个主流公司的研究方向和进展,和大家共同学习。 2 Transformer 目前的大模型基本都是Transformer及其变种。本部分将介绍Transf…

Nginx 安装配置

一、安装编译工具及库文件yum -y install make zlib zlib-devel gcc-c libtool openssl openssl-devel二、首先要安装 PCREPCRE 作用是让 Nginx 支持 Rewrite 功能。1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre…

Zookeeper工作原理

一 Zookeeper是什么 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易…
最新文章