除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为scratch。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。
以scratch为基础镜像的话,意味着你不以任何镜像为基础,接下来所写的指令将作如果你以为镜像第一层开始存在。
不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如coreos/etcdo 对于Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接会让镜像体积更加小巧。使用GO 语言开发的应用很多会使用这种方式来制作镜像,这也是为什么有人认为GO是特别适合容器微服务架构的语言的原因之一。