CMD
- 设置容器启动后默认执行的命令和参数
- 如果docker run 指定了其余命令,CMD命令能够被疏忽
- 如果定义了多个CMD,只有最初一个会执行
RUN
执行命令并创立新的Image Layer
ENTRYPOINT
- 设置容器启动时运行的命令
- 适宜让容器以应用程序或者后盾服务的模式来运行
- 不会被疏忽,肯定会执行
应用shell格调
# 输入的后果为 Hello DockerFROM centosENV name DockerENTRYPOINT echo "Hello $name"
应用exec格调
# 输入的后果为 Hello $nameFROM centosENV name DockerENTRYPOINT ["echo","Hello $name"]
# 输入的后果为 Hello DockerFROM centosENV name DockerENTRYPOINT ["sh","-c","echo Hello $name"]