Docker:理解入口点和CMD指令
我想问一些关于Dockerfile中可用的Docker:理解入口点和CMD指令,docker,Docker,我想问一些关于Dockerfile中可用的ENTRYPOINT和CMD说明的问题 假设我正在使用fig或docker compose将本地目录作为卷装载到容器中。什么时候执行ENTRYPOINT和CMD指令? 卷装入之后还是之前 如果我将bash脚本传递给ENTRYPOINT,是否会在每次启动容器时执行此脚本 如果有一个bash脚本被添加为ENTRYPOINT,那么使用docker run或docker exec执行的所有命令是否都会作为参数传递到此脚本 什么时候执行CMD安装?启动容器并装
ENTRYPOINT
和CMD
说明的问题
fig
或docker compose
将本地目录作为卷装载到容器中。什么时候执行ENTRYPOINT
和CMD
指令?
- 卷装入之后还是之前
ENTRYPOINT
,是否会在每次启动容器时执行此脚本ENTRYPOINT
,那么使用docker run
或docker exec
执行的所有命令是否都会作为参数传递到此脚本CMD
安装?启动容器并装入卷后CMD
?如果我想启动一个包含多个进程/运行多个可测试项的容器,该怎么办李>
1) ENTRYPOINT和CMD将按照它们在Dockerfile中出现的顺序执行,而不管卷装载情况如何
2) 如果您有一个启动谓词的入口点,则可以传递一个参数
3) docker run是的,但一些示例可能会澄清这一点,docker exec只是让您进入容器
4) CMD在启动容器时执行
5) 您可以在Dockerfile中使用多个CMD,但只能使用最后一个,docker设计为运行一个进程
如果要运行多个,则需要一些工具,如supervisor或runit或s6或daemontools,请参阅
由于CMD很容易被重写,而不是ENTRYPOINT(除非您
docker run--ENTRYPOINT
),通常您在Dockerfile中将ENTRYPOINT作为最后一行,并将CMD作为最后一行,实际上是可以更改的参数。ENTRYPOINT和CMD按照它们在Dockerfile中出现的顺序执行,无论卷装载如何2)如果您有一个入口点启动一个动词,您可以为docker run
传递一个参数3)yes,但一些示例可能会澄清这一点,并且docker exec
只是让您进入容器4)启动容器时执行CMD 5)您可以在docker文件中使用多个CMD,但只会使用最后一个,docker设计为运行一个进程,如果要运行多个进程,则需要一些工具,如supervisor或runit或s6或daemontools,因为CMD很容易被覆盖,而不是ENTRYPOINT(除非您docker run--entrypoint…
通常在Dockerfile中将entrypoint作为最后一行,并将CMD作为最后一行,实际上是参数,可以change@user2915097我建议你把你所有的评论都写进一个答案——如果你想在一个容器运行时开始多件事情的话,只需要一点(不是一个好主意)您可以使用脚本,将其添加到容器中,然后将其用作CMD。