• Dockerfile 中 CMD 和ENTRYPOINT 的区别


    1-联系

    • 允许用户指定容器的默认执行的命令

    2-区别

    • CMD有3种格式,Exec 格式是 CMD 的推荐格式

      Exec 格式:CMD ["executable","param1","param2"]
      CMD ["param1","param2"] 为 ENTRYPOINT 提供额外的参数,此时 ENTRYPOINT 必须使用 Exec 格式。
      Shell 格式:CMD command param1 param2
      
    • ENTRYPOINT 有两种格式

      Exec 格式:ENTRYPOINT ["executable", "param1", "param2"] 这是 ENTRYPOINT 的推荐格式
      Shell 格式:ENTRYPOINT command param1 param2
      
      ## Exec 格式
      
      ENTRYPOINT 的 Exec 格式用于设置要执行的命令及其参数,同时可通过 CMD 提供额外的参数。
      
      ENTRYPOINT 中的参数始终会被使用,而 CMD 的额外参数可以在容器启动时动态替换掉。
      
      比如下面的 Dockerfile 片段:
      
      ENTRYPOINT ["/bin/echo", "Hello"]  
      CMD ["world"]
      
      当容器通过 docker run -it [image] 启动时,输出为:
      Hello world
      
      而如果通过 docker run -it [image] CloudMan 启动,则输出为:
      Hello CloudMan
      
      ## Shell 格式
      
      ENTRYPOINT 的 Shell 格式会忽略任何 CMD 或 docker run 提供的参数。
      
    • 如果 docker run 指定了其他命令,CMD 指定的默认命令将被忽略。

    • 如果 Dockerfile 中有多个 CMD 指令,只有最后一个 CMD 有效。

    • ENTRYPOINT 看上去与 CMD 很像,它们都可以指定要执行的命令及其参数。不同的地方在于 ENTRYPOINT 不会被忽略,一定会被执行,即使运行 docker run 时指定了其他命令。

  • 相关阅读:
    弹窗拖拽组件开发应用
    高级事件的运用
    常见排序算法(JS版)
    原生js实现仿window10系统日历效果
    原生js实现吸顶导航和回到顶部特效
    OVN实战---《The OVN Gateway Router》翻译
    OVN实战---《An Introduction to OVN Routing》翻译
    OVN实战---《A Primer on OVN》翻译
    深入理解CNI
    《CNI specification》翻译
  • 原文地址:https://www.cnblogs.com/beihangxuwei/p/16354332.html
Copyright © 2020-2023  润新知