美文网首页
CMD & ENTRYPOINT

CMD & ENTRYPOINT

作者: wangfs | 来源:发表于2021-06-14 22:12 被阅读0次
    CMD:

    这个命令是用来做什么的?查看官方文档说明:https://docs.docker.com/engine/reference/builder/#cmd
    该指令有三种形式:

    1. CMD ["executable", "param1", "param2"] (exec form,优先使用这种方式)
    2. CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
    3. CMD command param1 param2 (shell form)

    cmd给出的是一个容器的默认的可执行体。也就是容器启动以后,默认的执行命令。重点是这个" 默认"。意味着,如果docker run没有指定任何的执行命令或者dockerfile里面也没有entrypoint,那么,就会使用cmd指定的默认的执行命令执行。同时也侧面说明了entrypoint的含义,它(entrypooint)才是真正的容器启动以后要执行的命令

    这也是为什么很多博客文档说的"cmd会被覆盖",其实为什么会覆盖?因为cmd的角色定位就是默认,如果你不额外指定,那么就执行cmd命令,否则呢?只要你指定了,那么就不会执行cmd,也就是cmd会被覆盖。

    用法3:shell form,即没有中括号的形式,那么命令command默认是在"/bin/sh -c"下执行的。比如下面的dockerfile
    From centos
    CMD echo "hello cmd"
    

    结果如下图所示:


    2.png

    相关文章

      网友评论

          本文标题:CMD & ENTRYPOINT

          本文链接:https://www.haomeiwen.com/subject/xutaeltx.html