Docker的Entrypoint和CMD的区别

云计算 云原生
Entrypoint是指定容器启动时要执行的可执行文件或脚本,并且该命令在运行容器时不能被覆盖。Entrypoint可以看作是容器的默认执行命令,它会在运行容器时自动执行。如果在运行容器时指定了其他命令,则这些命令将作为Entrypoint命令的参数传递给容器。

Docker中的Entrypoint和Cmd都是用于指定容器启动时要运行的命令,它们的区别在于它们的作用和使用方式。

Entrypoint是指定容器启动时要执行的可执行文件或脚本,并且该命令在运行容器时不能被覆盖。Entrypoint可以看作是容器的默认执行命令,它会在运行容器时自动执行。如果在运行容器时指定了其他命令,则这些命令将作为Entrypoint命令的参数传递给容器。

例如,在Dockerfile中指定Entrypoint为一个可执行文件,如下所示:

ENTRYPOINT ["./app"]

在运行容器时可以使用以下命令:

docker run myapp arg1 arg2

这样将运行容器,自动执行Entrypoint命令"./app",并将"arg1"和"arg2"作为参数传递给它。

Cmd是指定容器启动时要执行的默认命令或参数。它可以被覆盖,如果在运行容器时指定了其他命令,则这些命令将替换掉Cmd命令。

例如,在Dockerfile中指定Cmd为一个默认参数,如下所示:

CMD ["--port", "80"]

在运行容器时可以使用以下命令:

docker run myapp --port 8080

这样将运行容器,并使用"--port 8080"替换掉默认的Cmd命令参数"--port 80"。

总结来说,Entrypoint是指定容器启动时要执行的默认命令,它在运行容器时不能被覆盖。而Cmd是指定容器启动时要执行的默认命令参数,它可以被覆盖。通常情况下,Entrypoint用于指定容器启动时要运行的应用程序,而Cmd用于指定应用程序的默认参数。

责任编辑:姜华 来源: 今日头条
相关推荐

2014-11-18 10:48:58

dockerlinuxdockerfile

2023-05-12 07:08:09

PowerShellWindows操作系统

2021-12-30 10:30:12

RunC命令Linux

2011-05-26 15:52:31

sleep()wait()

2009-07-14 15:01:02

AWT和Swing

2015-09-23 10:00:47

OLTPOLAP

2011-09-05 17:44:49

LinuxUnix

2009-07-06 15:34:56

JSP和Servlet

2019-01-14 15:44:11

CoinToken区块链

2009-09-01 10:14:16

samba

2021-08-04 08:33:59

TypeScriptConst Readonly

2013-12-09 15:35:44

Docker虚拟机

2011-06-08 11:02:14

GetPost

2010-07-30 14:09:30

FlexFlash

2011-03-03 09:55:34

forwardredirect

2009-12-03 10:12:24

LinuxUnix

2018-11-14 09:46:33

DoSDDoS攻击

2020-08-12 23:21:49

平台即服务PaaSaPaaS

2024-04-24 11:31:52

Android移动开发

2020-07-09 10:53:05

MPLSIP网络
点赞
收藏

51CTO技术栈公众号