这是本专栏的第三部分:镜像篇,共 8 篇。前五篇我分别为你介绍了如何对 Docker 镜像进行生命周期的管理,如何使用 Dockerfile 进行镜像的构建和分发,Docker 的构建系统和下一代构建系统——BuildKit 以及 Dockerfile 的优化和实践。下面我们一起进入本篇镜像构建原理的学习。
Docker 架构概览
在前两篇《Docker 下一代构建系统》 中,我为你介绍了 Docker 整体而言是 C/S 架构的,我们通常使用的 Docker 命令,其实是它的 CLI 工具,而它的服务端程序是 Dockerd,整体如下图所示:
图片来源:Docker overview
Docker CLI 与 dockerd 的交互都是通过 Rest API 完成的,我们可以通过 docker version
查看到当前所使用的 API 版本。
/ # docker version | grep API
API version: 1.40
API version: 1.40 (minimum version 1.12)