博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker容器的分层思想
阅读量:6973 次
发布时间:2019-06-27

本文共 1251 字,大约阅读时间需要 4 分钟。

1. 容器分层结构图:

 

2.dockerfile分层的结构图:

配合图详解:

bootfs : kernel boot

rootfs : /etc /dev /bin /usr ..

容器的内核会映射到容器的rootfs,等启动到bootfs的时候,容器就会卸载掉rootfs,由系统的rootfs也就是kernel进行支持,而bootfs的目录结构就会很小,所以容器就会很小。

 

注意:不同linux的发行版的rootfs和bootfs是不一样,服务的软件包也不一样,如:centos7的是system.d ,centos6的是init.还有包管理器也不一样,如:Ubuntu的包管理器是apt,linux是yum。但是对于kernel差别不大,是开源的,自己定义就可以重新保装。

 

 

3.busybox嵌入式系统,是一个工具集,提供大量的工具命令,

busybox : others rootfs 提供其他程序的目录结构,只提供目录结构,不提供内核,嵌入式系统为上层的各自操作系统提供,如果是物理机的内核就走自己的最简单的rootfs,如果是其他操作系统就可以选择busybox提供的其他的目录结构。

 

用在:测试,存储结构

 

4.所有的容器无法对kernel进行升级,如果安装的环境需要其他的版本的内核,则不能安装在docker容器中,需要放在虚拟机中运行,对kernel没限制的则可以使用docker容器运行。

 

5.镜像的分层结构:

一般情况dockerfile都是基于base基础镜像上进行修改的。

例子:

vim dockerfile

FROM centos

RUN yum install net-tools -y

RUN yum install elinks -y

CMD ["/bin/bash"]

注释:elinks 浏览器

 

注意:

dockerfile 每一行命令是一层,从上往下,第一层是net-tools

又加了一层elinks

为什么要使用分层结构:

因为docker很多容器基于一个基础镜像,可以为所有容器提供服务,达到资源共享,

最上边的一层——可写容器层

Write container

 

容器层下边就是镜像层——只读镜像层

read image

 

文件叠加问题:

(1)如果容器的后两层有相同的文件,容器层只能读取到最上层的文件,越靠上层的文件越被读到,由上而下读取,

(2)如果是修改的文件的则只会保存到容器里,不会保存到基础镜像的层上,而且如果只修改b,则只读取b文件,并不会读取别的文件。

(3)读取文件的话,就是把最基础的东西读到镜像来,进行修改并不占用容器空间,只是将这个文件读取上来。

 

6.host storage (热数据备份)容器的存储结构

就是将修改的文件同步出来存放到物理机的存储结构上。

容器写时复制:container layer:COW

转载于:https://www.cnblogs.com/Leonardo-li/p/8822072.html

你可能感兴趣的文章
UISearchBar的应用
查看>>
解决Android中图片圆角——.9图
查看>>
retain和copy的区别 #import @class 的区别
查看>>
oracle group by 行转列 分析执行计划
查看>>
CSS基础语法
查看>>
使用栈实现队列(1)(Java)
查看>>
N皇后问题
查看>>
安装系统需要设置BIOS
查看>>
WPF 浏览器应用程序(page页面)如何全屏
查看>>
用户角色权限
查看>>
java读取xml(当xml放在包里时)
查看>>
图解Raid5数据存储的原理
查看>>
多线程面试题系列(1):多线程笔试面试题汇总
查看>>
近期解雇4000人,总解雇人数将超过7.5万 思科依然锋芒万丈
查看>>
HDU 1251 统计难题
查看>>
bzoj3707: 圈地
查看>>
centos7.3.1611安装及初始配置
查看>>
springboot热部署
查看>>
MySQL学习(五) UNION与UNION ALL
查看>>
C语言解释器的实现--词法分析(二)
查看>>