Docker

深入理解 Docker 生命周期:Pull、Build、Create、Start

10-20 15:19

目录




1、底层解剖:Docker 容器从无到有的“四大独立步骤”

① 拉取(Pull):获取基础镜像(比如:mysql)。

② 构建(Build):根据 Dockerfile 中的要求生成镜像(比如:加上一些扩展)。

③ 创建(Create):根据上面生成的镜像,创建容器(分配文件系统和网络)。

④ 启动(Start/Up):让这个容器跑起来。


2、一个容器从无到有的标准步骤(详细解释“四大独立步骤”)

① 获取基础镜像:通过 docker pull 从仓库拉取,或在构建时由 FROM 指令自动拉取。这一步是为构建准备“原材料”。

② 构建(Build)自定义镜像:执行 docker build(或 docker compose build),根据 Dockerfile 的指令,在基础镜像上逐层叠加生成一个新的、只读的镜像。

③ 创建(Create)容器:基于已有的镜像,创建一个可运行的容器实例。这一步会为容器分配独立的文件系统(在只读镜像上叠加一个可写层)和网络环境。

④ 启动(Start)容器:启动容器中定义的主进程,使容器从“已创建”状态进入“运行中”状态。


3、通过表格理解 Docker 底层生命周期“四大步骤”设计逻辑

步骤 动作 具体描述 原生核心命令 日常操作的真相 (捷径)
1 Pull 拉取 把基础镜像从镜像仓库(如 Docker Hub)拉到本地。如果本地已有缓存,则自动跳过。 docker pull 通常不需要手动执行,后续的构建或启动命令会自动触发。
2 Build 构建 按你的 Dockerfile 指令,在基础镜像上一层层叠加,烤出一个属于你的新镜像。 docker build 如果不需要装扩展改配置(没写 Dockerfile),可以直接跳过这一步。
3 Create 创建 基于镜像,在底层分配独立的文件系统(可写层)和网络栈,造出一个容器实例。 docker create 被 run 或 up 隐式打包完成
(等于敲一条命令,Docker 在后台自动连招)
4 Start 启动 启动这个容器实例里的主进程,让它真正跑起来。 docker start


4、Docker 日常操作:其实只有“两步”

很多新手在学习 Docker 时,会觉得命令极其复杂。但实际上,抛开底层的繁琐细节,在终端敲命令,最核心的操作确实只有两步:

docker compose build #构建镜像

docker compose up -d #启动容器


5、为什么日常操作只有两步?

我们在日常操作中,很少分别敲 pull、build、create、start 这 4 条命令。因为:

docker run = 检查拉取 (Pull) + 创建 (Create) + 启动 (Start)

docker compose up -d = 检查镜像 (可能触发 Build) + 创建 (Create) + 启动 (Start)

所以从“宏观操作”来看,就是两步(构建 + 启动);日常交流中,说“就这两步”完全没问题。

但从“底层生命周期”来看,必然是 4 个独立步骤。这点要清晰明了。


6、再看构建镜像的过程

通过上面的详细介绍,再来理解构建镜像的过程:

构建镜像时(build),docker 先要查询本地有没有所需镜像的缓存,如果有则直接使用,没有的话,还有“拉取镜像”这一步(pull)

构建镜像时,docker-compose.yml 中必须要有“build”这项配置,配置内容是“Dockerfile”文件的路径,可指向一个目录,docker 会自动找 Dockerfile 这个文件,如果文件名是自定义的,那就需要带上文件的名称

如果 docker-compose.yml 中没有“build”这项配置,只有“image”,那就是要“拉取镜像”,拉取后缓存到本地


微信小程序
大潇博客 版权所有 Copyright ©2016~2026
京ICP备17004217号-6  合作QQ:284710375
天玺科技