大家好!今天,我将详细整理Docker学习中最基础但也最容易让人混淆的“Docker生命周期(Life Cycle)”。
docker create, docker start, docker run… 这些看似相似的命令到底有什么不同呢?🤔 理解Docker的生命周期(流程)就能清晰地解答这个问题。
我们将通过图示,了解镜像进入我的电脑、运行、然后保存或删除的4个阶段过程。

1️⃣ 阶段1:镜像获取 (Registry ↔ PC)
“准备材料(设计图)的阶段”
所有容器的起点都是镜像(Image)。这是将镜像从外部仓库获取到我的电脑(Local Host),或者反之,共享我创建的镜像的过程。
- ☁️ Registry (仓库): 像Docker Hub一样,是收集镜像的巨大仓库。
- ⬇️ PULL: 从仓库(Registry)将镜像下载到我的电脑的命令。(例如: docker pull ubuntu)
- ⬆️ PUSH: 将我在电脑上操作(或修改)过的镜像上传到仓库,与团队成员或全世界的人共享的命令。
2️⃣ 阶段2:容器创建 (Image ↔ Container)
“用设计图搭建建筑骨架的阶段”
下载的镜像本身只是一个无法执行的只读(Read-only)文件。在此基础上,需要创建实际的工作空间——容器。
- 🟦 Image (镜像): 处于无法执行的“设计图”状态。无论如何操作,原始文件都不会改变。
- 🏗️ CREATE: 基于镜像创建容器。
- ⚠️ 重要: 此时只完成了文件系统隔离,程序尚未运行(未加载到内存)。就像电脑组装完成但尚未按下电源按钮的状态。
3️⃣ 阶段3:运行与停止 (Container ↔ Memory)
“开启电源并实际运行的阶段”
现在轮到让已创建的容器实际运行了。进程将使用CPU和内存(RAM)来运行。
- 🚀 START: 运行已创建(Created)的容器,将其作为进程加载到内存中的命令。
- 🏃 RUN (最常用!): 一次性解决繁琐的过程!
- RUN = PULL(如果不存在) + CREATE + START
- 这是一个万能命令,如果镜像不存在就下载,然后创建并立即运行。
- 🧠 Memory (进程): 容器实际“活着并呼吸”(运行中)的状态。
- 🛑 STOP: 停止正在运行的容器。进程会从内存中卸载,但容器本身(包括工作数据)仍保留在磁盘上。(就像电脑只关闭了电源)
4️⃣ 阶段4:保存与删除 (Management)
“保存结果或进行清理的阶段”
工作完成后,需要保存更改的内容以创建新的设计图,或者丢弃不需要的东西,对吧?
- 💾 COMMIT (非常重要): 如果我在容器内修改了文件或更改了设置,这个命令就是将这些更改保存为新镜像。
- 容器删除后数据会丢失,但如果通过commit将其镜像化,就可以随时以相同的状态再次运行。
- 🗑️ RM (Remove): 删除已停止的容器。(从磁盘中完全移除)
- 🔥 RMI (Remove Image): 删除本地存储的镜像文件本身。
✨ 总结:Docker命令的流程
只要记住这个流程,你就能成为Docker大师!
- PULL: 获取设计图(Image)。
- CREATE: 创建产品(Container)。(尚未运行)
- START: 启动产品。(运行中)
- (提示: RUN一次性完成1、2、3步!)
- COMMIT: 将更改的内容再次保存为设计图(Image)。
- RM / RMI: 丢弃不需要的产品(Container)或设计图(Image)。
将这个生命周期图牢记在心,当出现错误时,你就能准确诊断,例如“啊,现在有镜像但容器没有创建”或者“只有进程死了,但容器还活着”。
希望今天的内容对您的Docker学习有所帮助!如有疑问,请在评论中留言。👋
发表回复