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

33次阅读

共计 984 个字符,预计需要花费 3 分钟才能阅读完成。

定义

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

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

拜访

正文完
 0