• Docker底层架构之简介


    简介

    Docker 底层的核心技术包括

    • Linux 上的命名空间(Namespaces)
    • 控制组(Control groups)
    • Union 文件系统(Union file systems)
    • 容器格式(Container format)

    我们知道,传统的虚拟机通过在宿主主机中运行 hypervisor 来模拟一整套完整的硬件环境提 供给虚拟机的操作系统。虚拟机系统看到的环境是可限制的,也是彼此隔离的。

    这种直接的 做法实现了对资源最完整的封装,但很多时候往往意味着系统资源的浪费。

    例如,以宿主机和虚拟机系统都为 Linux 系统为例,虚拟机中运行的应用其实可以利用宿主机系统中的运行环境。

    我们知道,在操作系统中,包括内核、文件系统、网络、PID、UID、IPC、内存、硬盘、 CPU 等等,所有的资源都是应用进程直接共享的。 要想实现虚拟化,除了要实现对内存、 CPU、网络IO、硬盘IO、存储空间等的限制外,还要实现文件系统、网络、PID、UID、IPC 等等的相互隔离。 前者相对容易实现一些,后者则需要宿主机系统的深入支持。

    随着 Linux 系统对于命名空间功能的完善实现,程序员已经可以实现上面的所有需求,让某 些进程在彼此隔离的命名空间中运行。大家虽然都共用一个内核和某些运行时环境(例如一 些系统命令和系统库),但是彼此却看不到,都以为系统中只有自己的存在。

    这种机制就是 容器(Container),利用命名空间来做权限的隔离控制,利用 cgroups 来做资源分配。

  • 相关阅读:
    java 的 线程池应用和实践
    拦截信息短信息并转发到指定手机
    分享 UC优视 的android程序员面试题
    解释通讯协议中的xml
    设计模式工厂模式
    MongoDB基础教程系列第一篇 进入MongoDB世界
    Docx组件读写Word文档介绍
    [转]Oracle数据库逻辑增量备份之exp/imp
    JSON文件读取
    JAVA综合--如何掌握JDK1.5枚举类型[转]
  • 原文地址:https://www.cnblogs.com/guge-94/p/11064531.html
Copyright © 2020-2023  润新知