• docker容器技术基础入门


    主机级虚拟化

    type-1:运行在裸硬件上的虚拟机,虚拟机中安装操作系统
    type-2:裸硬件上运行操作系统,操作系统上安装虚拟虚拟机上运行,操作系统,

    容器级虚拟化

    程序不再所以一个独立的内核,而共享同一个内核

    容器是啥

    容器:用来运行程序的,在用户空间虚拟的隔离环境管理器,将用户空间隔离出多组,将用户空间隔离出来一个空间,运行一个服务或多个程序,每个空间互相不干扰,共享同一个一个内核程序,

    用户空间是啥

    用户空间:需要看到的组件,主机名和域名(UTS)需要有,根文件系统(MOUNT)需要有,需要有ipc,进程间通信的专用通道,ipc可以使用共享内存,把数据丢到一段共享内存空间内,别的程序可以访问使用,这就是进程间通信,PID伪装一个init,UID,在内核中的一个普通用户,在这个容器内伪装为root,可以仅在这个容器内为所欲为--

    两颗树,进程树和根文件系统树

    用户空间需要看到的组件UTS--MOUNT--IPC--PID--USE--NET,在容器内把这些虚拟出来,进程就觉得自己是唯一

    LINUX内核通过一种名称空间的机制,对他们UTS--MOUNT--IPC--PID--USE--NET的虚拟化原生支持,namespaces,通过系统调用,clone()克隆,创建进程,setns()将进程放在指定的名称空间内,在家长chroot切换根文件系统,在实现容器

    Control Groups(cgroups)资源分派

    可以实现对一个系统之上索要运行的进程,给他分门别类的分分类,每一类就叫一个组,叫控制组

    chroot--namespaces--cgroups这是最重要的组件,而这三种在内核3.8版本以后天然实现

    镜像文件是啥

    镜像文件:把一个操作系统,用户空间所需要用到的所有组件,事先编排好,编排好以后,给他整体打包好为一个文件,这个文件就叫做镜像文件,存储在统一的仓库中

  • 相关阅读:
    [super dealloc]内存释放的先后顺序
    NSString的常用方法
    Xcode开发技巧之code snippets(代码片段)
    关于oc运行时 isa指针详解
    ios快捷键
    自动释放池的使用
    【字典树】统计难题
    数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
    字典树模板
    数据结构实验之串三:KMP应用
  • 原文地址:https://www.cnblogs.com/hao-ran/p/11480312.html
Copyright © 2020-2023  润新知