镜像分层
Docker
镜像由一些松耦合的 只读 镜像层组成, Docker Daemon 负责堆叠这些镜像层,并将它们关联为一个统一的 整体 ,即对外表现出的是一个独立的对象。
通过docker pull
命令拉取指定的镜像时,每个 Pull complete 结尾的行就代表下载完毕了一个镜像层。
拉取示例,共有6层
为什么分层
采用这种分层结构的优势很多,例如,每个分层都是只读的,所有对分层的修改都是以新分层的形式出现,并不会破坏原分层内容;再如,每个分层只记录变更内容,所以有利于节省存储空间等。
不过,分层结构的最大的好处是 ,在不同镜像间实现 资源共享 ,即不同镜像对相同下层镜像的复用 。对于 docker pull
命令,其在拉取之前会先获取到其要拉取镜像的所有 ImageID,然后在本地查找是否存在这些分层。如果存在,则不再进行拉取,而是共享本地的该分层。大大节点的存储空间与网络带宽,