尼卡的英文译语怎么说-感觉身体被掏空 歌词
2023年3月29日发(作者:教师节主持稿)
Dockerfile命令RUN、CMD、ENTRYPOINT的区别
RUN
RUN命令是构建镜像时执⾏的命令,属于创建Docker镜像(image)的步骤。⼀个Dockerfile中可以有许多个RUN命令。
例如:
RUNyuminstall-ytelnet
CMD
CMD命令是构建容器后调⽤,也就是在容器启动时才进⾏调⽤。⼀个Dockerfile仅仅最后⼀个CMD起作⽤。
格式:
CMD[\"executable\",\"param1\",\"param2\"](运⾏⼀个可执⾏的⽂件并提供参数)
CMD[\"param1\",\"param2\"](设置了ENTRYPOINT,则直接调⽤ENTRYPOINT添加参数,即为ENTRYPOINT指定参数)
CMD北斗七星名字 commandparam1param2(执⾏shell内部命令)
⽰例:
CMDecho\"Thisisatest.\"|wc-
CMD[\"/usr/bin/wc\",\"--help\"]注: CMD不同于RUN,CMD⽤于陶渊明饮酒诗赏析20首 指定在容器启动时所要执⾏的命令,⽽RUN⽤于指定镜像构建时所要执⾏的命令。
如你指定:
CMD[\"/bin/echo\",\"thisisaechotest\"]
build后运⾏(假设镜像名为ec):
dockerrunec
就会输出:thisisaechotest
是不是感觉很像开机启动项,你可以暂时这样理解。
注意点:
但是如果在dockerrun后归园田居教案 添加其他指令。那么CMD将直接被替换。
如:
dockerrun-itubuntu/bin/bash
就不会输出:thisisaechotest,因为CMD命令被”/bin/bash”覆盖了。
⼜⽐如下⾯这个Dockerfile⽂件:
FROMbusybox
CMDecho\"helloworld\"
CMD指明了Docker镜像在运⾏时的输出⼀个\"helloworld\"
[root@bochsDocker]#dockerbuild-ttest.
SendingbuildcontexttoDockerdaemon2.048kB
Step1/2:FROMbusybox
--->83aa35aa1c79
Step2/2:CMDecho\"helloworld\"
--->Runningina1a4d74137d2
Removingintermediatecontainera1a4d74137d2
--->651b45b58fe9
Successfullybuilt651b45b58fe9
Successfullytaggedtest:latest
[root@bochsDocker]#dockerrun-ittest
helloworld
但是如果在dockerrun后添加其他指令。那么CMD将直接被替换
[root@bochsDocker]#dockerrun-ittestls
bindevetchomeprocrootsystmpusrvar
ENTRYPOINT
ENTRYPOINT与CMD类似,区别在于ENTRYPOINT⼀定会被执⾏。如果⼀个Dockerfile中同时存在ENTRYPOINT和CMD,CMD中的参数会被当做额外参数传给
ENTRYPOINT。
[root@bochsDocker]#catDockerfile
FROMbusybox
ENTRYPOINT[\"/bin/echo\",\"hello\"]
CMD[\"world\"]
通过dockerrun来运⾏,CMD变成了ENTRYPOINT的参数:
[root@bochsD石敬瑭简介 ocker]#dockerrun-ittest2
helloworld
但是如果指明dockerrun的参数china,那么输出就会变为:
[root@bochsDocker]#dockerrun-it棵的拼音 test2china
hellochina
原本CMD中带的参数world被dockerrun中的china所替换,但ENTRYPOINT⾃带的hello依然正常输出
Shell与Exec格式
CMD,RUN,ENTRYPOINT可以⽤两种格式来传递命令和参数,Shell⼀般表⽰为指令+命令,如:
RUNyuminstall-ytelnet
CMDecho\"helloworld\"
第⼀个⼤写的单词是Dockerfile的指令。后⾯跟的就是命令,可以拿到shell中单独执⾏
Exec格式可以表⽰为:指令+[\"命令\",\"命令参数1\",\"命令参数2\",...],⽐如:
RUN[\"yum\",\"install\",\"telnet\"]
ENTRYPOINT[\"/bin/bash\",\"-c\",\"echohelloworld\"]
对于这两种格式来说,CMD和ENTRYPOINT最好使⽤Exe游山西村古诗的诗意 c格式,命令和参数分开,层次性较强,⽽RUN则都可以。
注意:ENTRYPOINT的Shell格式和Exec格式差异很⼤
⽐如元旦手抄报 下⾯这个Shell格式的ENTRYPOINT
FROMbusybox
ENTRYPOINTecho\"hello\"
CMD\"world\"
在运⾏所⽣成的容器时,仅会输出hello,⽽CMD带的\"world\"会被忽略。同样的dockerrun带的参数也同样会被忽略
[root@bochsDocker]#dockerrun-itte飘飘何所似 天地一沙鸥 st
hello
[root@bochsDocker]#dockerrun-ittestchina
hello
参考⽂章:
更多推荐
entrypoint是什么意思rypoint在线翻译读音
发布评论