CMD 与 ENTRYPOINT 区别
CMD 命令演示
编写 Dockerfile
[root@sail dockerfile]# vim Dockerfile-cmd-test
[root@sail dockerfile]# cat Dockerfile-cmd-test
FROM centos
CMD ["ls","-a"]
构建镜像
[root@localhost home]# docker build -f dockerfile-cmd-test -t cmd .
[+] Building 0.0s (5/5) FINISHED                          doc
 => [internal] load build definition from dockerfile-cmd-test
 => => transferring dockerfile: 133B                         
 => [internal] load metadata for docker.io/library/centos:lat
 => [internal] load .dockerignore                            
 => => transferring context: 2B                              
 => CACHED [1/1] FROM docker.io/library/centos:latest        
 => exporting to image                                       
 => => exporting layers                                      
 => => writing image sha256:2b06f96416291f005301cc48ccf63a8fa
 => => naming to docker.io/library/cmd 
运行一下
先看id
[root@localhost home]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mycentos     latest    c7defb0511c1   19 minutes ago   312MB
centos       latest    5d0da3dc9764   2 years ago      231MB
cmd          latest    2b06f9641629   2 years ago      231MB
cmdtest      latest    2b06f9641629   2 years ago      231MB
[root@localhost home]# docker run 2b06f9641629
.
..
.dockerenv
bin
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
此时 Dockerfile 中编写的命令生效了。
追加
-l命令
[root@localhost home]# docker run cmd -l
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "-l": executable file not found in $PATH: unknown.
没有达到预期的 ls -al 命令。
CMD是替换的方式,-l不是命令,所以报错。
ENTRYPOINT 命令演示
编写 Dockerfile
[root@sail dockerfile]# vim dockerfile-entrypoint-test
[root@sail dockerfile]# cat dockerfile-entrypoint-test
FROM centos
ENTRYPOINT ["ls","-a"]
构建镜像
[root@localhost home]# docker build -f docker-entrypoint-test -t entrypoint .
[+] Building 0.0s (5/5) FINISHED             docker:default
 => [internal] load build definition from docker-entr  0.0s
 => => transferring dockerfile: 144B                   0.0s
 => [internal] load metadata for docker.io/library/ce  0.0s
 => [internal] load .dockerignore                      0.0s
 => => transferring context: 2B                        0.0s
 => CACHED [1/1] FROM docker.io/library/centos:latest  0.0s
 => exporting to image                                 0.0s
 => => exporting layers                                0.0s
 => => writing image sha256:a58b53c50da3074855495de14  0.0s
 => => naming to docker.io/library/entrypoint          0.0s
运行镜像
[root@localhost home]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cmd latest 2b06f9641629 2 years ago 231MB
entrypoint latest a58b53c50da3 2 years ago 231MB
[root@localhost home]# docker run entrypoint
.
..
.dockerenv
bin
dev
etc
home
lib
lib64
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
此时 Dockerfile 中编写的命令也生效了。
追加
-l命令[root@localhost home]# docker run entrypoint -l
total 4
drwxr-xr-x. 1 root root 6 May 30 12:44 .
drwxr-xr-x. 1 root root 6 May 30 12:44 ..
-rwxr-xr-x. 1 root root 0 May 30 12:44 .dockerenv
lrwxrwxrwx. 1 root root 7 Nov 3 2020 bin -> usr/bin
drwxr-xr-x. 5 root root 340 May 30 12:44 dev
drwxr-xr-x. 1 root root 66 May 30 12:44 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 Sep 15 2021 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. 342 root root 0 May 30 12:44 proc
dr-xr-x---. 2 root root 162 Sep 15 2021 root
drwxr-xr-x. 11 root root 163 Sep 15 2021 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 May 30 00:36 sys
drwxrwxrwt. 7 root root 171 Sep 15 2021 tmp
drwxr-xr-x. 12 root root 144 Sep 15 2021 usr
drwxr-xr-x. 20 root root 4096 Sep 15 2021 var
运行了预期的 ls -al 命令。
ENTRYPOINT是追加的方式。
Docker 中许多命令都十分相似,我们需要了解他们的区别,最好的方式就是这样对比测试。
CMD 与 ENTRYPOINT 区别的更多相关文章
- docker CMD 和 ENTRYPOINT 区别
		
昨天用Dockerfile来启动mongodb的集群,启动参数--replSet死活没执行,最后就决定研究一哈cmd和entrypoint.但是上网看了一些资料个人觉得讲的不好,还是没有说出根本的东西 ...
 - Docker 的CMD与ENTRYPOINT区别
		
我们在构建一个docker镜像的时候,Dockerfile里面有两个命令会引起我们的注意,它们就是 CMD 和 ENTRYPOINT,看起来很相似,实际上并非如此. 一.CMD 顾名思义就是允许用户指 ...
 - Dockerfile中CMD和ENTRYPOINT的区别
		
当启动一个容器时,CMD和ENTRYPOINT都可以用来执行启动命令.但它们的具体用法还是有一些区别: 1. Dockerfile必须至少指定CMD或者ENTRYPOINT其中的一个. 2. ENTR ...
 - [转]【docker】CMD ENTRYPOINT 区别
		
本文转自:https://blog.csdn.net/u010900754/article/details/78526443 昨天用Dockerfile来启动mongodb的集群,启动参数--repl ...
 - Docker系列(23)- CMD和ENTRYPOINT的区别
		
CMD和ENTRYPOINT的区别 CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令 测试CMD ...
 - 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 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: ...
 - CMD 与 ENTRYPOINT 的区别
		
Dockerfile里有 CMD 与 ENTRYPOINT 两个功能咋看起来很相似的指令,开始的时候觉得两个互用没什么所谓,但其实并非如此: CMD指令: The main purpose of a ...
 - RUN vs CMD vs ENTRYPOINT - 每天5分钟玩转 Docker 容器技术(17)
		
RUN.CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似,很容易混淆.本节将通过实践详细讨论它们的区别. 简单的说: RUN 执行命令并创建新的镜像层,RUN 经常用于 ...
 
随机推荐
- patch-package:taro-ui引入报错 Using / for division outside of calc() is deprecated and will be removed in Dart Sass 2.0.0
			
前言 在使用taro ui时候报错如下 > Executing task: yarn run dev:weapp < yarn run v1.22.17 $ npm run build:w ...
 - C++ 元编程 学习二
			
简介 C++ 元编程 学习之二 参考资料 C++ 模板元编程实战 code #include <iostream> // 编译器分支与多种返回类型 写法1 template <boo ...
 - 自动安装依赖的 ubuntu dpkg 的竞品gdebi
			
简介 dpkg 安装的时候总会出现缺少依赖的情况要自己可能手动安装,但是有了gdebi就可以帮你轻松搞定. 例如坚果云的安装 使用gdebi安装,自动安装依赖 sudo gdebi nautilus_ ...
 - Sublime Test 安装&配置教程
			
先按照这上面的网址安装: oi-wiki SublimeText配置 记得点击:Windows 64 bit 后面的那个安装很慢. 下载一个Devc++或Codeblocks,这边提供Devc++下载 ...
 - RestCloud ETL社区版序列号相关咨讯
 - SciTech-BigDataAIML-Statistical Model-Bayes Inference-数据/事实 ∩ 假设: 政治经济、社会和科学分析
			
SciTech-BigDataAIML-Statistical Model Bayes Inference-数据/事实 ∩ 假设 \(\large \begin{array}{rl} \\ P(H|D ...
 - pandas速成笔记(4)-数据图表
			
接上篇继续,做数据分析,各种数据图表是必不可少的,还是以下面这张表为例: 一.单列柱状图 假设要把9月份,A.B这2个分类的Amount提取出来画一个柱状图,可以这么做: import pandas ...
 - win10专业版开机电脑红屏的问题
			
有深度技术的win10专业版用户,发现电脑开机后屏幕会变成红色的,再次重启电脑,也没有恢复正常,这个问题怎么解决呢?其实,这是因为显示设置出了问题,所以才会出现这种情况.那么,我们该怎么解决这个问题呢 ...
 - 从频繁告警到平稳发布:服务冷启动 CPU 风暴优化实践
			
作者:vivo 互联网服务器团队- Xie Xiaopeng 本文针对服务启动后几分钟内 CPU 持续处于高峰状态的问题,提出了自己的分析思路与解决方案.最终线上效果比较显著,成功解决了每次发版过程中 ...
 - AI大模型时代已来,推荐几款主流的智能化低代码平台(附真实测评)
			
 随着AI大模型技术深入应用于企业管理应用的各方面,目前作为企业数字化应用构建的有力工具--低代码平台,也正迎来AI智能化升级.现在,市场上的各种低代码平台通过集成AI技术.自动化流程与数据分析等能 ...