跳转到主内容
思享编程网:思考分享,玩转编程世界!

Docker里ENTRYPOINT和CMD到底有啥区别?

大家好,我是陆砚码,今天咱们来聊聊Docker里的两个小兄弟——ENTRYPOINT和CMD。它们俩都是用来定义容器启动命令的,但用法和效果可大不一样。

先来个快速总结:

  • ENTRYPOINT:就像是容器的主命令,一旦定义了,容器启动时就会执行这个命令。
  • CMD:提供默认参数,或者在没有指定ENTRYPOINT时,作为默认命令。

详细来说说它们的区别:

🔍 核心区别:

  • 作用与定位:ENTRYPOINT定义的是容器的主命令,而CMD提供的是默认参数。
  • 可覆盖性:ENTRYPOINT比较难被覆盖,需要用docker run --entrypoint来替换;而CMD很容易被覆盖,直接在docker run后面追加参数就可以。
  • 组合使用时的行为:当两者都存在时,ENTRYPOINT定义主命令,CMD提供默认参数。docker run的参数会覆盖CMD,但不会影响ENTRYPOINT。

举个例子:

ENTRYPOINT [
                            

相关文章