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 模式。