这是本课程的第三部分:镜像篇,共 8 篇,帮助你由浅入深地认识和掌握 Docker 镜像的管理、构建、分发及原理。同时会深入源码了解 Docker 的构建系统,之后会结合实际经验,为你介绍如何在生产环境中对镜像镜像优化。下面我们一起进入第一篇的内容,主要涉及镜像的生命周期管理。
备注:为了避免术语的混淆,本课程中的“镜像”均指“Docker Image”,源码解析使用的是 Docker CE v19.03.4 版本。
在之前的内容中,我们多次使用 docker run
命令创建容器。比如,我们经常使用的一条命令 docker run --rm -it alpine
,如果是首次运行此命令则会看到类似下面的输出:
(MoeLove) ➜ ~ docker run --rm -it alpine
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
89d9c30c1d48: Already exists
Digest: sha256:c19173c5ada610a5989151111163d28a67368362762534d8a8121ce95cf2bd5a
Status: Downloaded newer image for alpine:latest
/ #
通过这条命令,我们将名为 alpine:latest
的镜像下载到了本地,并使用此镜像启动了一个容器。我们来分解下此命令的输出,由此正式进入本篇。
docker run 下载镜像的行为解析
查找镜像
Unable to find image