定义
镜像是轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件。它蕴含运行某个软件所须要的所有内容(代码,运行时库、环境变量、配置文件)。
Docker镜像加载原理
Docker的镜像理论由一层层的文件系统(UnionFS)组成。
UnionFS 联结文件系统:分层,轻量级,高性能的文件系统,反对对文件系统的批改作为一次提交来层层叠加。
Docker镜像的最底层是bootfs(boot file system),与Linux雷同,蕴含boot加载器(bootloader)和内核(kernel)。当boot加载实现整个内核就在内存中了,内存使用权由bootfs转交给内核,同时零碎卸载bootfs。
bootfs之上是rootfs(root file system),就是操作系统发行版(Ubuntu,Centos...),蕴含/dev,/proc,/bin,/etc等规范目录和文件。
Docker为什么小?
1.对于不同的Linux发行版,rootfs有区别,但bootfs根本是统一的,能够共用bootfs。
2.一个精简的OS的rootfs只须要最根本的命令,工具和程序库,能够很小。
3.Docker镜像底层能够间接应用宿主机的内核,本人只须要提供rootfs。
Docker镜像分层原理:layer
Docker镜像都是只读的,当容器启动时,会把一个新的可写层被加载到镜像顶部。
这一层称为容器层,容器层之下都是镜像层。
docker commit 镜像提交
docker commit -m="形容" -a="作者" 容器ID 指标镜像:[TAG]
测试
#装置并启动nginxdocker run -d --name nginx01 -p 3344:80 nginx#进入容器docker exec -it nginx01 /bin/bash#装置vimapt-get updateapt-get install vim#批改nginx主页vim /usr/share/nginx/html/index.html#退出容器CTRL+P+Q#提交版本docker psdocker commit -a="itxiaoma" -m="add vim" c1ab7a56364f nginx-vim:1.0docker stop c1ab7a56364f#运行新的版本docker run -d -p 3344:80 nginx-vim:1.0
拜访