CMD与ENTRYPOINT区别
时间: 2024-04-28 12:22:46 浏览: 99
CMD和ENTRYPOINT是Dockerfile中两个常用的指令,它们在容器启动时运行命令方面有一些区别。
CMD指令用于指定容器启动时默认运行的命令,它可以被docker run命令行参数和CMD指令本身提供的参数覆盖。CMD指令有两种格式:exec格式和shell格式。exec格式的CMD指令推荐使用,它可以设置要执行的命令和参数,并且可以通过docker run命令行参数提供额外的参数。
ENTRYPOINT指令也是指定容器启动时运行的命令,与CMD不同的是,ENTRYPOINT一定会执行,而且不会被忽略。如果Dockerfile中存在多个ENTRYPOINT指令,只有最后一个ENTRYPOINT有效。ENTRYPOINT有两种格式:exec格式和shell格式。
exec格式的ENTRYPOINT指令用于设置要执行的命令和参数,同时可通过CMD提供额外的参数。shell格式的ENTRYPOINT指令会忽略任何CMD或docker run提供的参数。
综上所述,CMD和ENTRYPOINT的区别在于CMD指令可以被覆盖,而ENTRYPOINT指令一定会执行且不会被忽略。此外,CMD和ENTRYPOINT指令都有exec格式和shell格式,但exec格式更常用和推荐。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [cmd与entrypoint的区别](https://blog.csdn.net/MssGuo/article/details/126348571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文