尼卡的英文译语怎么说-感觉身体被掏空 歌词


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在线翻译读音