Dockerfile中ENTRYPOINT和CMD有什么区别

lewis 2018-12-05 23次阅读

ENTRYPOINT和CMD都是Dockerfile中用来指定容器启动时要执行的命令的指令,它们的区别如下:

  1. CMD指定容器启动时要执行的命令,可以有多个CMD指令,但只有最后一个CMD指令会生效。CMD指令可以被docker run命令的参数覆盖。

  2. ENTRYPOINT也指定容器启动时要执行的命令,但只能有一个ENTRYPOINT指令,多个ENTRYPOINT指令会被覆盖。ENTRYPOINT指令不会被docker run命令的参数覆盖,而是将docker run命令的参数作为ENTRYPOINT指令的参数传递进去。

简而言之,CMD用于定义默认的命令和参数,可以被docker run命令的参数覆盖,而ENTRYPOINT用于定义容器的主要命令,不会被docker run命令的参数覆盖。



发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。