1.Docker镜像
1.镜像原理
1.镜像文件系统原理
Docker镜像是有文件系统叠加而成,最低端是一个引导文件系统,即bootfs。
Docker镜像的第二层是root文件系统rootfs,它位于引导文件系统之上。rootfs可以使一种或多种 操作系统,传统的Linux系统引导时root文件系统最先以只读的方式加载,引导结束并完成完整性检查后会切换到读写模式,Docker中root文件系统永远只能是只读状态,并且Docker利用联合加载(unionmount)技术又会再root文件系统上加载更多的只读文件系统。
Docker将这种文件系统称为镜像,镜像可以叠加,在下方的镜像称为父镜像,最底层的镜像称为基础镜像,当使用一个镜像启动容器时,Docker会在该镜像的最顶层加载一个读写文件系统,在Docker中运行的程序就在这个读写层。

写时复制:Docker第一次启动一个容器时,初始的读写层是空的。当文件系统发生变化时,这些变化都会应用到这一层上,如果要修改一个文件,此文件会从下面的只读层复制到读写层,此文件的只读版本依然存在,但是会被读写层的副本隐藏。
联合加载:指一次同时加载多个文件系统(镜像),但是再外面只能看到一个文件系统,联合加载会将各层文件系统叠加到一起,这样最终文件系统会包含所有底层的文件和目录。
3.当一个容器启动后,容器会被移动到内存中,引导文件系统则会被卸载,以留出更多的内存公initrd磁盘镜像使用。
2.镜像仓库
docker images [xxxx] 列出本机镜像
镜像—仓库—Registry(默认Docker Hub,可以修改)
镜像仓库:储存镜像,包括镜像,层及关于镜像的元数据,每个镜像仓库可以存储多个镜像,但是需要用不同的tag区分
dcoker pull xxxx:xxxx 从镜像仓库下载镜像到本地,默认是下载 xxxx:last
