关于docker:Docker学习笔记-04镜像的原理和提交

定义

镜像是轻量级,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件。它蕴含运行某个软件所须要的所有内容(代码,运行时库、环境变量、配置文件)。

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]

测试

#装置并启动nginx
docker run -d --name nginx01 -p 3344:80 nginx

#进入容器
docker exec -it nginx01 /bin/bash

#装置vim
apt-get update
apt-get install vim
#批改nginx主页
vim /usr/share/nginx/html/index.html
#退出容器
CTRL+P+Q

#提交版本
docker ps
docker commit -a="itxiaoma" -m="add vim" c1ab7a56364f nginx-vim:1.0
docker stop c1ab7a56364f

#运行新的版本
docker run -d  -p 3344:80 nginx-vim:1.0

拜访

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理