# Introduce

Image 是Docker用于创建并启动 docker 容器的重要组成部分。Image 中还有启动容器所需要的文件系统及其内容。

如图,Images 采用了分层的构建机制,底层为 bootfs,上层为 rootfs。

# bootfs

用于系统引导的文件系统,包括 bootloader 和 kernel ,容器启动完成后会被从内存中移除以节约内存资源。

# rootfs

位于 bootfs 之上,表现为 docker 容器的根文件系统。 docker 区别于 传统的 Linux系统。docker 中,rootfs 由内核挂载为“只读”模式,通过“联合挂载”(见下图)额外挂载一个“可写”层。而在Linux中,系统内核挂载 rootfs 先挂载为 “只读”模式,在完成自检之后,重新挂载为“读写”模式。 在 Docker 的术语里,一个只读层被称为镜像,一个镜像是永久不会变的。

# 联合挂载

在 Docker 容器中需要根据用户需求进行配置操作,而镜像是不可更改的,于是就需要在镜像最上层挂载一层 “writable”(可写层)。该挂载方式也称为联合挂载。

# 联合挂载:将一个个镜像进行堆叠形成应用容器。

每一个镜像都可能依赖于由一个或多个下层镜像组成另一个镜像。通常可以说,下层镜像是上层镜像的父镜像。

# 总结

# 镜像概念

# 基础镜像

一个没有任何父镜像的镜像,称为 基础镜像

# 镜像ID

所有镜像通过一个 64位十六进制字符串(内部是一个256 bit 的值)来表示,为简化使用,前 12 个字符可以组成一个短 ID,可以在命令行总使用。短 ID 有一滴的碰撞几率,所以服务器总返回长 ID。

不同的 image 可以共享相同的层

精彩内容推送,请关注公众号!
最近更新时间: 4/14/2020, 8:23:49 PM