容器的进程与namespace、rootfs
一:容器是什么
容器的本质是一种特殊的进程。
在linux容器中有三个重要的概念:Namespace、Cgroups、rootfs。
Namespace做隔离,让进程只能看到Namespace中的世界;
Cgroups 做限制,让这个“世界”围着一个看不见的墙。
rootfs 做文件系统,rootfs 只是一个操作系统所包含的文件、配置和目录,并不包括操作系统内核。
二:Namespace是什么
进入容器后,ps命令看到的容器的应用进程都是1号进程,这个其实是pid namespace导致,他其实就是个障眼法,
让你看到的是类似于一个新的虚拟机新环境,其实是不一样的,容器就是一个运行的进程,而容器中的其他进程则是pid为1的子进程。
除了刚刚pid namespace,还有其它的namespace如下:
容器是怎么新建namespace的?
docker创建容器,其实就是linux系统的一次fork的调用,
在进行fork调用时,会传入一些flag参数,这个参数可以控制对linux内核调用新的namespace。
三:rootfs
挂载在容器根目录上、用来为容器进程提供隔离后执行环境的文件系统,就是所谓的“容器镜像”。它还有一个更为专业的名字,叫作:rootfs(根文件系统)。
容器的rootfs由三部分组成,1:只读层、2:可读写层、3:init层
1.只读层:都以增量的方式分别包含了 操作系统的一部分。
2.可读写:就是专门用来存放你修改 rootfs 后产生的增量,无论是增、删、改,都发生在这里。而当我们使用完了这个被修改过的容器之后,还可以使用 docker commit 和 push 指令,保存这个被修改过的可读写层,并上传到 Docker Hub 上,供其他人使用;而与此同时,原先的只读层里的内容则不会有任何变化。这,就是增量 rootfs 的好处。
3.Init 层:是 Docker 项目单独生成的一个内部层,专门用来存放 /etc/hosts、/etc/resolv.conf 等信息。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用
开源 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用 一 背景 在日常的一些工作中,偶尔也需要我们把图片转换为文字。目前大部分办公软件还无法实现类似的功能,因此遇到类似的问题时,我们只能自己动手解决。 Tesseract(识别引擎),一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎,与Microsoft Office Document Imaging(MODI)相比,我们可以不断的训练的库,使图像转换文本的能力不断增强;如果团队深度需要,还可以以它为模板,开发出符合自身需求的OCR引擎。在 GitHub 上我们目前能看到的最新版本为:v4.1.0。 本文以 CentOS7.6.1810 为例对 Tesseract 的安装及使用进行演示。为了减少大家重复造轮子,本文已将安装过程整理为 Docker 镜像,需要的小伙伴直接使用文中的 Dockerfile 即可构建镜像,进而实现开箱即用。 二 镜像的构建过程 2.1 准备阶段 将 Dockerfile 及相关的资源包放到同...
- 下一篇
阿里云云存储网关预付费购买指南
云存储网关可以将您在OSS中存储的数据无需协议转换,直接挂载在您的线下服务器以及云上ECS中,实现数据的轻松读取和共享访问。以下为您介绍几种类型网关的购买指引: 一、基础型/标准型/增强型/性能型网关 以上类型网关需要挂载在您的云上ECS使用,在购买网关前的需要您创建或选择您ECS所属的VPC及Vswitch服务。 1.进入阿里云VPC控制台 ,创建或选择您需要挂载的ECS 所在的VPC专有网络,以保证存储网关与ECS的数据联通,请注意区域选择您ECS所在的地域; 2.点击VPC控制台在左侧导航栏,单击交换机,选择要创建交换机的VPC所属的地域,根据页面提示填写交换机相关信息,点击确定,交换机创建完成。 3.完成VPC和交换机创建后,就可以进行存储网关的创建和购买,后付费直接登录控制台进行网管的创建及使用,预付费可以登录云存储网关购买页面
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- 2048小游戏-低调大师作品
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker安装Oracle12C,快速搭建Oracle学习环境