Skip to content
gqlxj1987's Blog
Go back

Container Images 介绍

Edit page

原文链接

目前 OCI 主要有三个规范:运行时规范 runtime-spec ,镜像规范 image-spec 以及不常见的镜像仓库规范 distribution-spec

image-spec

layer: 以 layer (镜像层)保存的文件系统,每个 layer 保存了和上层之间变化的部分,layer 应该保存哪些文件,怎么表示增加、修改和删除的文件等

docker inspect <image_id> 得到image config

manifest文件,指明跨平台的基础支持,

使用项目默认的 Dockerfile 进行构建的话,镜像大小接近 500MB 😂,而经过一些的优化,将所有的 RUN 指令合并为一条,最终构建出来的镜像大小为 30MB,合并RUN有利于减小镜像大小

docker 在 1.10 以后,只有 RUN、COPY 和 ADD 指令会创建层,其他指令会创建临时的中间镜像,但是不会直接增加构建的镜像大小了。

;&& 二者有本质的区别,比如 COMMAND 1;COMMAND 2 ,当 COMMAND 1 运行失败时会继续运行 COMMAND2 ,并不会退出。而 COMMAND 1&& COMMAND 2,时 COMMAND 1 运行成功时才接着运行 COMMAND 2 ,COMMAND 1 运行失败会退出。

docker build 构建镜像的流程大概就是:

因为在 Dockerfile 中的 ADD 指令 src 文件如果是个 tar 包,在构建的时候 docker 会帮我们把 tar 包解开到指定目录,使用 copy 指令则不会解开 tar 包。另外一点区别就是 ADD 指令是添加一个文件,这个文件可以是构建上下文环境中的文件,也可以是个 URL,而 COPY 则只能添加构建上下文中的文件,所谓的构建上下文就是我们构建镜像的时候最后一个参数啦。


Edit page
Share this post on:

Previous Post
byte/char in heapdump
Next Post
AB test是否可靠