Docker的Entrypoint和CMD的区别
2023-04-18 14:51:56 时间
Docker中的Entrypoint和Cmd都是用于指定容器启动时要运行的命令,它们的区别在于它们的作用和使用方式。
Entrypoint是指定容器启动时要执行的可执行文件或脚本,并且该命令在运行容器时不能被覆盖。Entrypoint可以看作是容器的默认执行命令,它会在运行容器时自动执行。如果在运行容器时指定了其他命令,则这些命令将作为Entrypoint命令的参数传递给容器。
例如,在Dockerfile中指定Entrypoint为一个可执行文件,如下所示:
在运行容器时可以使用以下命令:
这样将运行容器,自动执行Entrypoint命令"./app",并将"arg1"和"arg2"作为参数传递给它。
Cmd是指定容器启动时要执行的默认命令或参数。它可以被覆盖,如果在运行容器时指定了其他命令,则这些命令将替换掉Cmd命令。
例如,在Dockerfile中指定Cmd为一个默认参数,如下所示:
在运行容器时可以使用以下命令:
这样将运行容器,并使用"--port 8080"替换掉默认的Cmd命令参数"--port 80"。
总结来说,Entrypoint是指定容器启动时要执行的默认命令,它在运行容器时不能被覆盖。而Cmd是指定容器启动时要执行的默认命令参数,它可以被覆盖。通常情况下,Entrypoint用于指定容器启动时要运行的应用程序,而Cmd用于指定应用程序的默认参数。
相关文章
- 前端抱怨 API 响应慢,到底慢在哪里?
- 生产中遇到的Spring项目Bean的多次加载问题
- Beats 入门实战(2)--FileBeat 介绍
- 测试项目(三):在后端解决跨域问题
- 雪花算法详解(原理优缺点及代码实现)
- 插入排序算法步骤和思路
- 导出Excel添加水印
- 华夏相机开发对接/臻识相机开发/车牌识别器在共享洗车项目使用总结
- 选择排序算法步骤分析
- 如何将日期时间输出带"AM/PM"的字样呢?
- SpringBoot-JavaMailSender接口实战
- Docker 部署 Kibana
- KTV和泛型(3)
- 什么是缓存雪崩?服务器雪崩的场景与解决方案
- 面试官:Hash 碰撞是什么?如何解决?被问懵了……
- arthas使用介绍
- SpringBoot实战派读书笔记---响应式编程
- Typora+MinIO+Java代码打造舒适写作环境
- IDEA快捷键究极整合,建议收藏!
- spring boot 自定义线程池与使用