扫码阅读
手机扫码阅读

云计算-7-Dockerfile深度解析CMD和ENTRYPOINT指令

60 2024-07-19

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:云计算-7-Dockerfile深度解析CMD和ENTRYPOINT指令
文章来源:
springboot葵花宝典
扫码关注公众号

CMD指令

CMD指令在Docker中用于指定容器进程启动命令。它有两种格式和三种写法:

  • Shell格式:CMD command arg1 arg2
  • Exec格式:CMD ["可执行文件", "arg1", "arg2"]
  • 为ENTRYPOINT提供默认参数:CMD ["arg1", "arg2"]

例子1展示了如何构建一个基于nginx的Docker镜像,并使用CMD指令输出'hello docker'。例子2使用centos基础镜像,通过yum安装nginx并设置了CMD指令来启动nginx服务。

提示部分解释了为什么使用CMD service nginx start会导致容器立即退出,因为容器中没有后台进程,主进程结束后容器也会退出。

ENTRYPOINT指令

ENTRYPOINT指令的格式和RUN指令一样,有两种形式:

  • Shell格式:command param1 param2
  • Exec格式:ENTRYPOINT ["executable", "param1", "param2"]

ENTRYPOINT的目的是指定容器启动程序和参数,例子3和例子4展示了如何使用ENTRYPOINT指令启动nginx,并查看版本信息。

提示部分强调了Dockerfile中只能有一条CMD指令,并且CMD的主要目的是为容器提供默认执行值。如果CMD用于为ENTRYPOINT提供默认参数,那么它们都应该使用JSON数组格式。此外,使用docker run传入参数时,这些参数会覆盖CMD指令的内容。

想要了解更多内容?

查看原文:云计算-7-Dockerfile深度解析CMD和ENTRYPOINT指令
文章来源:
springboot葵花宝典
扫码关注公众号