关于docker:34-RUN-vs-CMD-vs-Entrypoint

CMD

  • 设置容器启动后默认执行的命令和参数
  • 如果docker run 指定了其余命令,CMD命令能够被疏忽
  • 如果定义了多个CMD,只有最初一个会执行

RUN

执行命令并创立新的Image Layer

ENTRYPOINT

  • 设置容器启动时运行的命令
  • 适宜让容器以应用程序或者后盾服务的模式来运行
  • 不会被疏忽,肯定会执行

应用shell格调

# 输入的后果为 Hello Docker
FROM centos
ENV name Docker
ENTRYPOINT echo "Hello $name"

应用exec格调

# 输入的后果为 Hello $name
FROM centos
ENV name Docker
ENTRYPOINT ["echo","Hello $name"]
# 输入的后果为 Hello Docker
FROM centos
ENV name Docker
ENTRYPOINT ["sh","-c","echo Hello $name"]

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理