zoukankan      html  css  js  c++  java
  • 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版本以后天然实现

    镜像文件是啥

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

  • 相关阅读:
    判断qq浏览器和uc浏览器?
    做前端能避免的错误总结
    css布局
    border-radius后面写px/rem与百分比有什么区别?
    vertical-align
    localstorage和cookie的设置方法和获取方法
    怎么让列表的文字只显示两行,多出的出现省略号?
    avalon在公共页面里面写的功能,怎么让某些页面不引用到这个方法和html?
    小程序
    webpack
  • 原文地址:https://www.cnblogs.com/hao-ran/p/11480312.html
Copyright © 2011-2022 走看看