镜像原理:
1.联合文件系统UnionFS:
(相关资料图)
一种分层的轻量级文件系统,它可以把多个目录内容联合挂载到同一目录下(而目录的物理位置是分开的),从而形成一个单一的文件系统,这种特性可以让使用者像是使用一个目录一样使用联合文件系统。
UnionFS允许只读和可读写目录并存,就是说可同时删除和增加内容。UnionFS应用的地方很多,比如在多个磁盘分区上合并不同文件系统的主目录。另外UnionFS具有写时复制(copy-on-write)功能UnionFS可以把只读和可读写文件系统合并在一起,虚拟上允许只读文件系统的修改可以保存到可写文件系统当中
UnionFS的核心就是高效的利用磁盘空间。
docker将依赖的操作系统、各种lib依赖整合打包在一起(即镜像),然后容器启动时,作为它的根目录(根文件系统rootfs),使得容器进程的各种依赖调用都在这个根目录里,这样就做到了环境的一致性。它让Docker 可以把镜像做成分层的结构,从而使得镜像的每一层可以被共享。
———————————
层级结构:
......
Add【image】
Add【image】
Rootfs【base image】即各操作系统的发行版如centos,且是精简版os
Bootfs【host的Kernel、bootloader】
———————————-
2.分层:
如:
第三层:app2.0
第二层:app1.0及其文件
第一层:OS,mysql,tomcat
则2.0的发行将覆盖第二层,docker对外展示时,三层镜像合并。
docker镜像都是只读的,容器启动时,一个新的可写层被加载到镜像的顶部,被称为容器层,下面的就叫镜像层。
提交镜像
启动一个镜像
修改镜像
提交镜像
docker commit -m=“信息” -a=“作者” 容器id 目标镜像名[TAG]