mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-11 08:57:34 +00:00
更新Docker安装、镜像、Dockerfile和Compose等文档内容
This commit is contained in:
@@ -1,5 +1,20 @@
|
||||
## 7.4 CMD 容器启动命令
|
||||
|
||||
### 何时使用 CMD,何时使用 ENTRYPOINT?
|
||||
|
||||
在深入 CMD 的细节之前,我们需要理解一个关键问题:**CMD 和 ENTRYPOINT 应该在什么时候使用?**
|
||||
|
||||
这是 Dockerfile 使用中最常见的困惑之一。简单的答案是:
|
||||
- **CMD**:定义容器的”默认命令”。如果用户在 `docker run` 时提供命令,CMD 会被覆盖
|
||||
- **ENTRYPOINT**:定义容器的”入口脚本”。通常用于启动应用的某个特定部分
|
||||
|
||||
**决策树**:
|
||||
1. **你的容器是否有不可变的启动逻辑?** 比如需要先做一些初始化工作,然后才运行应用 → 使用 ENTRYPOINT
|
||||
2. **用户经常会在 `docker run` 时传入不同的命令吗?** → 使用 CMD(让用户灵活覆盖)
|
||||
3. **大多数情况下,你希望容器始终以相同的方式启动?** → 使用 ENTRYPOINT
|
||||
|
||||
更多细节见 [7.5 ENTRYPOINT 指令](7.5_entrypoint.md)。
|
||||
|
||||
### 7.4.1 什么是 CMD
|
||||
|
||||
`CMD` 指令用于指定容器启动时默认执行的命令。它定义了容器的 “主进程”。
|
||||
|
||||
Reference in New Issue
Block a user