48-Dockerfile-CMD/ENTRYPOINT指令

news2024/10/7 18:32:05

CMD/ENTRYPOINT指令

      • 前言
      • CMD
        • 作用
        • 格式
        • 使用示例
      • ENTRYPOINT
      • 作用
      • 格式
      • 使用示例
      • CMD/ENTRYPOINT区别
        • CMD使用示例
        • ENTRYPOINT使用示例


前言

  • 本篇来学习下Dockerfile中的CMD/ENTRYPOINT指令

CMD

作用

  • 启动容器时默认执行的命令

说明:

  • 一个 Dockerfile 只有一个 CMD 指令,只有最后一个 CMD 指令生效
  • 使用 docker run -d xxx CMD 命令是可以覆盖 Dockerfile 中的 CMD 指令的

格式

# exec 方式, 首选方式  CMD ["可执行命令", "参数1", "参数2"...]
CMD ["executable","param1","param2"]

# 为 ENTRYPOINT 提供默认参数
CMD ["param1","param2"]

# shell 形式  CMD 命令 参数1  参数2
CMD command param1 param2

使用示例

  • 新建dockerfile
FROM ubuntu
#  CMD 和 ENTRYPOINT 作为唯一入口,写多个,只有最后一个生效
# shell方式
CMD ping bing.com

# exec方式
CMD [ "sh", "-c", "echo $HOME" ]
  • 制作镜像
docker build -t test --force-rm --no-cache .
  • 运行容器
# --rm 表示容器退出,自动删除
docker run -it --rm test
  • 可以看到只执行了后面的echo $HOME,没执行ping 命令
    在这里插入图片描述

ENTRYPOINT

作用

  • 指定镜像的默认入口命令,该入口命令会在启动容器时作为根命令执行,所有其他传入值作为该命令的参数

说明:

  • 一个 Dockerfile 只有一个 ENTRYPOINT 指令,只有最后一个 ENTRYPOINT 指令生效

格式

# exec 格式
ENTRYPOINT ["executable", "param1", "param2"]

# shell 格式
ENTRYPOINT command param1 param2

使用示例

  • 新建dockerfile
FROM ubuntu
#  CMD 和 ENTRYPOINT 作为唯一入口,写多个,只有最后一个生效
# shell方式
ENTRYPOINT ping baidu.com
# exec方式
ENTRYPOINT [ "sh", "-c", "echo $HOME" ]
  • 制作镜像
docker build -t test --force-rm --no-cache .
  • 运行容器
docker run -it --rm test

在这里插入图片描述

CMD/ENTRYPOINT区别

  • CMD :指定这个容器启动的时候要运行的命令,会覆盖原命令,不可以追加命令
  • ENTRYPOINT :指定这个容器启动的时候要运行的命令,可以追加命令

CMD使用示例

  • dockerfile
FROM ubuntu
CMD ["ls","-a"]
  • 制作镜像
docker build -t test --force-rm --no-cache .
  • 运行容器
# 覆盖 ls -a; -l命令是不存在的,所以会报错
docker run -it --rm test -l

在这里插入图片描述

ENTRYPOINT使用示例

  • dockerfile
FROM ubuntu
ENTRYPOINT ["ls","-a"]
  • 制作镜像
docker build -t test --force-rm --no-cache .
  • 运行容器
# 会追加命令 相当于执行  ls  -a -l
docker run -it --rm test -l

在这里插入图片描述
`

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

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

相关文章

nginx+flume网络流量日志实时数据分析实战

文章目录 nginxflume网络流量日志实时数据分析实战网络流量日志数据分析-概述网络流量日志数据分析-数据处理流程网络流量日志数据分析-数据采集网站日志文件启动nginx服务器:刷新页面,查看日志信息:日志字段解释 网络流量日志数据分析-数据采集-Flume框架Flume概述Flume运行机…

ESP32-C2开发板烧录演示

一、准备工作 数据线X 1 、 四博智联 ESPC2-12 开发板 X 1 二、环境搭建 1、进入https://code.visualstudio.com 官网下载VSCODE软件 2、安装完成后安装乐鑫插件如下图 3、插件安装完后,查看- 命令面板(快捷键CtrlShiftP)。 4、输入config…

基于C#的上位机和组态软件:如何选择最佳方案?

C#上位机并非取代组态软件,而是其补充,它们各自在不同的应用场景中发挥作用。 如果您了解组态,但不懂C#编程,且没有特殊需求(如自定义协议、复杂业务、第三方系统对接等),并且希望获得良好的功…

无人机航测行业中常见名词解释,你都知道吗?

无人机航测具有机动灵活、高效快速、作业成本低、适用范围广、生产周期短等优势,目前主要应用于地形测绘、工程建设、土地资源调查、地质灾害应急处理、城市数字化建设等方面。下面就来了解一下无人机航测行业中的常见名词吧。 1、航片:利用航空摄影器拍…

有什么好用的云渲染?

在CG制作流程中,离线渲染一直是必要且耗时的环节。你的场景越复杂,渲染出现问题的可能性就越大,尤其是当你独自工作,没有人给你建议的时候,灯光、模型、场景任何一个环节渲染时出现问题都可能让你焦头烂额,…

掌握这些思维技巧,解救996的打工人!

你身边有没有这样的人:面对堆积如山的工作、随时弹出的任务,接二连三的群也能游刃有余地处理。回看自己,旧的任务还在做,新的任务已经从天而降,日程表上满是任务却无从下手…… 明明忙个不停却成果甚微,这…

数据结构与算法基础

目录 第六章、数据结构与算法基础1、数组与矩阵1.1、数组1.2、稀疏矩阵1.3、数据结构的定义 2、线性表 2.1、顺序表和链表2.2、顺序存储与链式存储对比2.3、 队列与栈 3、广义表4、树与二叉树 4.1、特殊二叉树4.2、二叉树遍历4.3、反向构造二叉树4.4、树转二叉树4.5、查找二叉…

自然语言处理实战项目6-无监督学习之文本聚类分析,将任意文本分类

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目6-无监督学习之文本聚类分析,将任意文本分类。当今互联网上的数据量越来越大,机器学习技术越来越成熟。在这种情况下,将文本按其主题或者意义进行分类是一项…

本地部署 Whisper

本地部署 Whisper 1. 什么是 Whisper2. Github 地址3. 创建虚拟环境4. 安装 ffmpeg5. 部署 Whisper6. 使用 Whisper 1. 什么是 Whisper Whisper 是一个通用的语音识别模型。它是在一个大型的不同音频数据集上训练出来的,也是一个多任务模型,可以进行多语…

微服务介绍 SpringCloud,服务拆分和远程调用,注册中心Eureka,负载均衡Ribbon,注册中心Nacos

一、微服务介绍 1.系统架构的演变 什么是微服务,微服务有哪些特征SpringCloud是什么SpringCloud与Dubbo的区别 1.单体架构 将业务的所有功能集中在一个项目中开发,打成一个包部署。当网站流量很小时,单体架构非常合适 1.单体架构 优点&a…

为什么我说自学黑客(网络安全),一般人还是算了吧!

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而…

Spark大数据处理讲课笔记4.1 Spark SQL概述、数据帧与数据集

文章目录 零、本讲学习目标一、Spark SQL(一)Spark SQL概述(二)Spark SQL功能(三)Spark SQL结构1、Spark SQL架构图2、Spark SQL三大过程3、Spark SQL内部五大组件 (四)Spark SQL工作…

大型剧本杀游戏小程序

大型剧本杀游戏具有以下几个方面的前景: 娱乐市场需求增加:随着人们对于娱乐方式的多样化需求增加,大型剧本杀游戏作为一种互动性强、参与感强的娱乐形式,将会得到越来越多的关注和喜爱。 适应移动端用户:大型…

Git-git的使用、分支、本地仓与远程仓、idea中使用

Git Git 简介 ​ Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] 也是[Linus Torvalds](https://baike.baidu.com/item/Linus Torvalds/9336769)为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 Git…

PyTorch Geometric (PyG) 库的安装

PyG 库的安装 前言1、PyG库的安装过程2、版本问题解决 前言 最近在学习图神经网络,需要用到PyG库,发现这个库的安装不能简单的使用pip install 安装,这里记录一下。 1、PyG库的安装过程 第一步:查看自己的torch版本和cuda版本 …

ASEMI代理HMC408LP3ETR原装ADI车规级HMC408LP3ETR

编辑:ll ASEMI代理HMC408LP3ETR原装ADI车规级HMC408LP3ETR 型号:HMC408LP3ETR 品牌:ADI/亚德诺 封装:QFN-16 批号:2023 引脚数量:16 工作温度:-40C~85C 安装类型:表面贴装型…

软件行业网络推广解决方案_上海添力

软件行业也属于B2B型的企业服务业务,由于这类企业都是轻资产,重人力,所以有个显著的特点就是公司再小,也会有健全的市场部;销售收入再少,也会在线上推广上大量投资,有的公司甚至把网络营销当成了…

vue 脚手架新手入门(vue cli 2)

文章目录 写在前面1、创建一个vue项目2、项目结构2.1、写两个页面试试2.2、代码解释 3、前后端对接3.1、使用 axios 发起简单请求3.2、 路由 的使用3.2.1、配置默认地址前缀3.2.2、添加子路由3.2.3、切换路由3.2.4、监听路由3.2.5、方法调用 与 页面刷新3.2.6、this.$route 获取…

Golang笔记:执行外部程序与Shell命令

文章目录 目的使用演示Cmd结构体总结 目的 程序中执行外部程序是比较常用的功能,Golang执行外部程序可以使用标准库中的 os/exec https://pkg.go.dev/os/exec 。这个包默认是用来执行外部程序的,可以通过调用Shell程序来执行Shell命令。这篇文章将对相关…

FastDFS集群搭建及StringBoot整合

简介 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务&…