Docker系列(23)- CMD和ENTRYPOINT的区别
CMD和ENTRYPOINT的区别
- CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
- ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令
测试CMD
- # 编写 dockerfile文件
[root@localhost dockerfile]# vim DockerFile-cmd
FROM centos
CMD ["ls","-a"]
# 构建镜像
[root@localhost dockerfile]# docker build -f DockerFile-cmd -t cmdtest .- [root@localhost dockerfile]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- cmdtest latest 3160b7785cc7 15 seconds ago 209MB
# 运行镜像- [root@localhost dockerfile]# docker run 3160b7785cc7
- .
- ..
- .dockerenv
- bin
- dev
- etc
- home
- lib
- lib64
- lost+found
- media
- mnt
- opt
- proc
- root
- run
- sbin
- srv
- sys
- tmp
- usr
- var
# 想追加一个命令 -l 即ls -al
[root@localhost dockerfile]# docker run 3160b7785cc7 -l
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "-l": executable file not found in $PATH: unknown.
# cmd的情况下,-l会替代CMD ["ls","-a"]命令,-l不是命令所以报错
测试ENTRYPOINT
- [root@localhost dockerfile]# vim DockerFile-ENTRYPOINT
FROM centos
ENTRYPONIT ["ls","-a"]- [root@localhost dockerfile]# docker build -f DockerFile-ENTRYPOINT -t entrypoint-test .
- Sending build context to Docker daemon 4.096kB
- Step 1/2 : FROM centos
- ---> 300e315adb2f
- Step 2/2 : ENTRYPOINT ["ls","-a"]
- ---> Running in 4b061853bebd
- Removing intermediate container 4b061853bebd
- ---> 6ef0aa48e5e2
- Successfully built 6ef0aa48e5e2
- Successfully tagged entrypoint-test:latest
- [root@localhost dockerfile]# docker images
- REPOSITORY TAG IMAGE ID CREATED SIZE
- entrypoint-test latest 6ef0aa48e5e2 11 seconds ago 209MB
- [root@localhost dockerfile]# docker run 6ef0aa48e5e2
- .
- ..
- .dockerenv
- bin
- dev
- etc
- home
- lib
- lib64
- lost+found
- media
- mnt
- opt
- proc
- root
- run
- sbin
- srv
- sys
- tmp
- usr
- var
# 我们的追加命令,是直接拼在我们的ENTRYPOINT命令的后面- [root@localhost dockerfile]# docker run 6ef0aa48e5e2 -l
- total 0
- drwxr-xr-x. 1 root root 6 Aug 30 07:04 .
- drwxr-xr-x. 1 root root 6 Aug 30 07:04 ..
- -rwxr-xr-x. 1 root root 0 Aug 30 07:04 .dockerenv
- lrwxrwxrwx. 1 root root 7 Nov 3 2020 bin -> usr/bin
- drwxr-xr-x. 5 root root 340 Aug 30 07:04 dev
- drwxr-xr-x. 1 root root 66 Aug 30 07:04 etc
- drwxr-xr-x. 2 root root 6 Nov 3 2020 home
- lrwxrwxrwx. 1 root root 7 Nov 3 2020 lib -> usr/lib
- lrwxrwxrwx. 1 root root 9 Nov 3 2020 lib64 -> usr/lib64
- drwx------. 2 root root 6 Dec 4 2020 lost+found
- drwxr-xr-x. 2 root root 6 Nov 3 2020 media
- drwxr-xr-x. 2 root root 6 Nov 3 2020 mnt
- drwxr-xr-x. 2 root root 6 Nov 3 2020 opt
- dr-xr-xr-x. 255 root root 0 Aug 30 07:04 proc
- dr-xr-x---. 2 root root 162 Dec 4 2020 root
- drwxr-xr-x. 11 root root 163 Dec 4 2020 run
- lrwxrwxrwx. 1 root root 8 Nov 3 2020 sbin -> usr/sbin
- drwxr-xr-x. 2 root root 6 Nov 3 2020 srv
- dr-xr-xr-x. 13 root root 0 Aug 24 13:01 sys
- drwxrwxrwt. 7 root root 145 Dec 4 2020 tmp
- drwxr-xr-x. 12 root root 144 Dec 4 2020 usr
- drwxr-xr-x. 20 root root 262 Dec 4 2020 var
Docker系列(23)- CMD和ENTRYPOINT的区别的更多相关文章
- Docker | dockerfile构建centos镜像,以及CMD和ENTRYPOINT的区别
构建自己的centos镜像 docker pull centos下载下来的镜像都是基础版本,缺少很多常用的命令功能,比如:ll.vim等等, 下面介绍制作一个功能较全的自己的centos镜像. 步骤 ...
- 论docker中 CMD 与 ENTRYPOINT 的区别
Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: CMD指令: The main purpose of a ...
- 论docker中 CMD 与 ENTRYPOINT 的区别(转)
Dockerfile 用于自动化构建一个docker镜像.Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: ...
- Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较
1.概述 创建Docker镜像的方式有三种 docker commit命令:由容器生成镜像: Dockerfile文件+docker build命令: 从本地文件系统导入:OpenVZ的模板. 关于这 ...
- Dockerfile中CMD和ENTRYPOINT的区别
当启动一个容器时,CMD和ENTRYPOINT都可以用来执行启动命令.但它们的具体用法还是有一些区别: 1. Dockerfile必须至少指定CMD或者ENTRYPOINT其中的一个. 2. ENTR ...
- CMD 与 ENTRYPOINT 的区别
Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: CMD指令: The main purpose of a ...
- Docker系列三:Dockerfile
Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像 Dockerfile由一行行命令语句组成,支持#开头的注释 Dockerfile分为四部分:基础镜像信 ...
- docker CMD 和 ENTRYPOINT 区别
昨天用Dockerfile来启动mongodb的集群,启动参数--replSet死活没执行,最后就决定研究一哈cmd和entrypoint.但是上网看了一些资料个人觉得讲的不好,还是没有说出根本的东西 ...
- Docker 的CMD与ENTRYPOINT区别
我们在构建一个docker镜像的时候,Dockerfile里面有两个命令会引起我们的注意,它们就是 CMD 和 ENTRYPOINT,看起来很相似,实际上并非如此. 一.CMD 顾名思义就是允许用户指 ...
随机推荐
- 构建工具之Maven的使用(一)
一.前言 对于开发一个Java项目,上线之前会通过编译,测试,打包,部署这几个构建过程,如果文件较少,我们可以使用java-->javac-->jar这些命令去完成上述的构建流程.但是当工 ...
- MeteoInfo-Java解析与绘图教程(三)
MeteoInfo-Java解析与绘图教程(三) 上文我们说到简单绘制色斑图(卫星云图),但那种效果可定不符合要求,一般来说,客户需要的是在地图上色斑图的叠加,或者是将图片导出分别是这两种效果 当然还 ...
- Windows下安装RocketMQ
目录 前言 环境 具体操作 下载 环境变量配置 启动 关闭 生产.消费实例 RocketMQ Console 前言 项目中用到了延迟消息队列,记录下一win10下rocketmq的安装 环境 win1 ...
- FTP 大文件传输问题 解决
问题描述 将附件上传至FTP服务器,但是当附件过大,其大小为几百兆或1-2G时,会出现上传失败的现象 FTP上传原理解析 这里我们使用的是.Net的FtpWebRequest 创建FtpClient ...
- 0x800b010a 证书
无论是装微软的什么应用,只要报这个错误,下载这个证书: http://download.microsoft.com/download/2/4/8/248D8A62-FCCD-475C-85E7-6ED ...
- 同步(synchronized)
转载至:https://www.cnblogs.com/dolphin0520/p/3923737.html 一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而在多线程编程中,有可能 ...
- UWP使用命名管道与桌面程序通信 (C#)
关于UWP的历史,其起源是Microsoft在Windows 8中引入的Metro apps.(后来又被称作Modern apps, Windows apps, Universal Windows A ...
- dubbo(一)
1. Introduction 参考链接:https://www.baeldung.com/dubbo Dubbo is an open-source RPC and microservice fra ...
- Jemeter压力测试
Jmeter教程 简单的压力测试 Jmeter是一个非常好用的压力测试工具. Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 转载自小坦克:https: ...
- C# - 习题05_写出程序的输出结果o1.count
时间:2017-08-24 整理:byzqy 题目:写出下列程序的输出结果: //原题程序如下: class Class1 { private static int count = 0; static ...