Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
【Docker那些事】系列文章
Dockerfile 文件结构、docker镜像构建过程详细介绍
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别
构建Docker镜像指南,含实战案例
Docker 制作自定义化的Tomcat镜像
docker 安装 mysql 并映射数据库存放路径及配置文件
docker安装tomcat 映射配置文件、日志文件
docker安装nginx,配置nginx,并成功访问
docker安装redis并将配置文件和数据文件映射到外部
区别介绍
CMD [“要运行的程序”,“参数1”,“参数2”] : 指定启动容器时要运行的命令或脚本。可以有多个CMD指令,但只有最后一个生效。CMD会被docker run
指令后的参数替换
ENTRYPOINT [“要运行的程序”,“参数1”,“参数2”] : 和CMD一样,指定启动容器时要运行的命令或脚本。ENTRYPOINT不会被docker run
指令后的参数替换,而是在其后追加参数
实例说明CMD和ENTRYPOINT的区别
CMD实例
Dockerfile文件
FROM centos
MAINTAINER ber & ber@email.com
CMD ["ls"]
构建镜像
这里因为Dockerfile文件已经存在,我另存了一个Dockerfile1文件,构建时需要-f
指定一下使用的Dockerfile文件
docker build -f Dockerfile1 -t mycentos:1 .
运行新镜像mycentos:1
docker run -it mycentos:1
可以看到最后的CMD指令在docker run时成功运行了。
再试着加-l
参数运行,我想要实现ls -l
的效果。能否成功呢?接着往下看实验
docker run -it mycentos:1 -i
很明显,失败了。
原因
CMD会被docker run
指令后的参数替换。
在输入加参数-l
指令后
docker run -it mycentos:1 -l
CMD ls
指令 就被替换成 CMD -l
,这个指令明显是错的,当然不能执行,于是就报错提示指令不存在。
ENTRYPOINT实例
Dockerfile文件
FROM centos
MAINTAINER ber & ber@email.com
ENTRYPOINT ["ls"]
构建镜像
这里也是因为Dockerfile文件已经存在,我另存了一个Dockerfile2文件,构建时需要-f
指定一下使用的Dockerfile文件
docker build -f Dockerfile2 -t mycentos:2 .
运行新镜像mycentos:2
docker run -it mycentos:2
可以看到最后的ENTRYPOINT指令在docker run时成功运行了。
再试着加-l
参数运行,我想要实现ls -l
的效果。这次能否成功呢?接着往下看实验
docker run -it mycentos:2 -l
ls -l
查看当前文件夹下详细的文件信息,这里已经实现了我想要的。
当使用ENTRYPOINT指令时,docker run
后加的参数-l
作用到mycentos:2镜像上会以ls -l
指令执行。
这也就是CMD指令和ENTRYPOINT指令的主要区别。
Dockerfile文件中CMD指令与ENTRYPOINT指令的区别相关推荐
- WinCE中sources文件中targetlibs与sourcelibs的作用与区别
在WinCE里面,编译和链接的必备文件sources,做过WinCE BSP开发的一定都很熟悉,其中有2个关键字,targetlibs和sourcelibs,一直让我对其中的区别很感兴趣,故查阅了一些 ...
- dockerfile文件中copy上下文目录
COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置. <目标路径> 可以是容器内的绝对路径,也可以是相对于工作 ...
- Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较
1.概述 创建Docker镜像的方式有三种 docker commit命令:由容器生成镜像: Dockerfile文件+docker build命令: 从本地文件系统导入:OpenVZ的模板. 关于这 ...
- Dockerfile中CMD和ENTRYPOINT区别
CMD指令和ENTRYPOINT指令的作用都是为镜像指定容器启动后的命令,那么它们两者之间有什么各自的优点呢? 为了更好地对比CMD指令和ENTRYPOINT指令的差异,我们这里再列一下这两个指令的说 ...
- Dockerfile中CMD和ENTRYPOINT命令详解
原文:https://m.jb51.net/article/136264.htm Dockerfile中CMD和ENTRYPOINT命令详解 发布时间:2018-03-12 11:46:00 作者:s ...
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
◆ 不带参数的宏定义:用来产生与一个字符串(即宏名)对应的常量字符串,格式为: #define 宏名 常量串 ◆ 带参数的宏定义:带参宏定义的形式很象定义一个函数,格式为: #def ...
- Dockerfile文件解释
一.先来看一个简单的 Dockerfile #这个Dockerfile作用是打一个python3项目环境 FROM python:3-alpine WORKDIR /app ADD . /app RU ...
- Docker_03_彻底搞懂Dockerfile文件
文章目录 一.前言 二.Dockerfile基本命令 2.1 FROM (导入基础镜像,几乎是必须的,就像是java程序中的import导入) 2.2 RUN (在镜像内部执行一些命令,类似java程 ...
- Dockerfile文件万字全面解析
Dockerfile是一个文本文件,包含一些Docker指令.执行docker build,Docker就会执行Dockerfile里面的指令,来自动创建镜像. 用法 Dockerfile里面的指令可 ...
最新文章
- Androidstudio SVN安装与使用
- android 实现模拟加载中的程序
- GeosparkViz 可视化
- shell的输入和输出
- 抖音封杀小猪佩奇,一年赚100亿的“社会人”得罪了谁?
- 混合样本数据增强(Mixed Sample Data Augmentation,MSDA)
- 使用keras为什么accuracy一直为0_TensorFlow 2.0+Keras 防坑指南
- P2962 [USACO09NOV]灯Lights
- html让页面两边都留点空位,标记语言——CSS布局_HTML/Xhtml_网页制作
- linux进程的线程信息,Linux 下查看线程信息
- CCNA 中文教材 (pdf)
- VS Winform开发实践纪要
- 基于matlab的暴雨强度公式参数推求,基于MATLAB的暴雨强度公式参数推求
- 现代文文言文转化器_初中语文丨7个文言文背诵技巧,不再为背书发愁,实用收藏...
- iec104点号_IEC104规约报文说明(104报文解释的较好的文本)
- 怎么把解压的文件在HTML打开,压缩文件怎么解压打开?
- 七种应刻意训练的顶级思维方法
- asp毕业设计—— 基于asp+access的网上聊天室设计与实现(毕业论文+程序源码)——网上聊天室
- 赛码网输入输出(js v8)问题并配置赛码网vscode本地环境
- 3D游戏设计-模型与动画