镜像的分层
镜像分层
镜像分层的三个组件
AUFS:提供了堆叠式的架构,将文件/目录的堆叠并且最后通过同一种方式提供出来
BOOTFS:提供了base image底层镜像操作系统资源的支持,docker和宿主机是共用内核的,所以image中的底层镜像大小才能远远小于实际的操作系统镜像大小
LXC:提供了底层的容器库
镜像生成
Dockerfile中的每个指令都会创建一个新的镜像层
镜像层将被缓存和复用
当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存都会失效
某一层的镜像缓存失效后,它之后的镜像缓存都会失效
镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层删除它,则镜像中依然会包含该文件
docker镜像的创建
docker镜像创建的三种方法:
基于已有的容器创建:将容器里面运行的程序及运行环境打包生成新的镜像
基于本地模板创建:通过导入操作系统模板文件生成新的镜像
基于Dockerfile创建
基于dockerfile创建
Dockerfile组成部分
Dockerfile是由一组指令组成的文件,它结构由以下四部分组成
1、基础镜像信息
2、维护者信息
3、镜像操作指令
4、容器启动时执行指令
Dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用以“#”号开头的注释