容器创建时需要指定镜像,每个镜像都由唯一的标示Image ID ,和容器的Container ID 一样,默认128 位,可以使用前16 为缩略形式,也可以使用镜像名与版本号两部分组合唯一标示,如果省略版本号,默认使用最新版本标签( latesr)
镜像的分层:Docker 的镜像通过联合文件系统( union filesystem ) 将各层文件系统叠加在一起
- bootfs:用于系统引导的文件系统,包括bootloader 和kernel,容器启动完成后会被卸载以节省内存资源
- roofs:位于bootfs之上,表现为Docker 容器的跟文件系统
传统模式中,系统启动时,内核挂载rootfs时会首先将其挂载为“只读”模式,完整性自检完成后将其挂载为读写模式,
在Docker中,rootfs由内核挂载为“只读”模式,而后通过UFS技术挂载一个“可写”层镜像特性-1
那么如何了解docker结构:
最底层是bootfs在这里有我们需要的kernel,然后利用联合文件系统将基础镜像搭建在kernel上,基础镜像基本上指的是CentOS,Ubantu,Debian等一些常用的操作系统的镜像,在网上我们需要搭建自己需要的image镜像,比如我们在做javaweb项目时,所需要的tomcat镜像,最上面是我们所使用的容器(可写层),在每一层中不可以对下面一层的镜像是不可以操作的。上层镜像的优先级大于下层镜像的优先级。
另外,对于镜像来说:工作在前台的守护进程至少一个
Dockerfile的命令行最大值为128行