Dockerfile-cmd-entrypoint

https://www.jb51.net/article/136264.htm

exec模式,进程PID为1,但不能使用环境变量等shell特性
CMD ["top"]

要使用shell特性,可以显示以shell方式运行
CMD ["sh","-c","commond"]

shell 模式,这种方式会以 /bin/sh -c "task command"方式运行,进程PID不为1,1号进程是bash
CMD commond


给ENTRYPOINT提供参数
CMD ["param1",param2]


shell模式,会忽略传递进来的参数,即不可以被覆盖
ENTRYPOINT echo $HOME
要显示覆盖可以 --entrypoint

我们大概可以总结出下面几条规律:
• 如果 ENTRYPOINT 使用了 shell 模式,CMD 指令会被忽略。
• 如果 ENTRYPOINT 使用了 exec 模式,CMD 指定的内容被追加为 ENTRYPOINT 指定命令的参数。
• 如果 ENTRYPOINT 使用了 exec 模式,CMD 也应该使用 exec 模式。

posted @ 2021-08-17 10:13  lavida2000  阅读(48)  评论(0)    收藏  举报