zoukankan      html  css  js  c++  java
  • Docker 技术 介绍

    https://github.com/docker/docker
    实现用户空间隔离的技术:名称空间(NameSpace),CGroup(控制组)
    什么是NameSpace::简单的理解就是,每一个虚拟的用户空间可以基于名称空间实现进程pid号、用户名等相同的机制,且每一个虚拟的用户空间相互不受干扰
    什么是CGroup:控制资源使用率的机制
    Docker由GO语言研发,遵守Apache开源协议
    Docker由C/S架构实现,客户端称为:docker client服务端称为:docker server
    • NameSpace名称空间实现用户空间隔离
    1:network namespace
    实现隔离网络协议栈、端口号等
     
    2:user namespace
    实现用户和用户组隔离
     
    3:IPC namespace
    实现进程间通信的隔离
     
    4:pid namespace
    实现进程号隔离
     
    5:mount namespace
    实现挂载隔离
     
    6:UTS namespace
    实现主机名和域名隔离
    • CGroup控制组实现用户空间隔离
    CGroup用户组实现对资源的使用率隔离
    • 归纳总结
    1:那么到底什么是容器技术?
    容器技术 = namespace + Linux的CGroup机制
     
    2:namespace隔离出多个用户空间
     
    3:Linux的CGroup机制为每一个用户空间的分配资源空间
    例如:分配多少CPU资源,分配多少内存资源,分配多少I/O资源
    • CGroup的子系统
    /sys/fs/cgroup目录介绍
    1:blkio
    控制访问块设备的i/o资源
     
    2:cpu
    控制CPU资源的使用率
     
    3:cpuacct
    审计CPU使用时长
     
    4:cpuset
    控制CPU的核心数配比、控制内存物理资源空间的配比(可以理解为分配了一条内存条)
     
    5:memory
    控制内存资源的使用率
     
    6:devices
    控制任务对设备的访问权限
     
    7:freezer
    控制挂起或激活某个任务
     
    8:net_cls
    控制网络i/o资源对不同的用户空间的分配
     
    9:perf_event
    控制性能事件的分配机制
     
    10:hugetlb
    控制大内存页面进行控制
    • Docker文件系统AUFS(advanced multi-layered unification filesystem):
    Docker容器是建立在Aufs基础上的,Aufs是一种Union FS, 简单来说就是支持将不同的目录挂载到同一个虚拟文件系统下,并实现一种layer的概念。Aufs将挂载到同一虚拟文件系统下的多个目录分别设置成read-only,read-write以及whiteout-able权限,对read-only目录只能读,而写操作只能实施在read-write目录中。重点在于,写操作是在read-only上的一种增量操作,不影响read-only目录。当挂载目录的时候要严格按照各目录之间的这种增量关系,将被增量操作的目录优先于在它基础上增量操作的目录挂载,待所有目录挂载结束了,继续挂载一个read-write目录,如此便形成了一种层次结构。
     
    docker强依赖于AUFS,因为每一种应用程序都需要特定的运行环境,包括rootfs、以及程序运行的库文件、配置文件
     
     
     

    Docker 概念、简要应用

    1:registry:类似综合仓库,用于保存docker image、layer information
    2:repository:一般基于操作系统发行版本分类
    3:index:管理registry的检索,例如docker search ubantu 就会先检索index
    4:graph:管理本地docker的本地镜像的元数据
  • 相关阅读:
    [ jquery 选择器 :hidden ] 此方法选取匹配所有不可见元素,或者type为hidden的元素
    剑指 Offer 03. 数组中重复的数字 哈希
    LeetCode 1736. 替换隐藏数字得到的最晚时间 贪心
    Leetcode 1552. 两球之间的磁力 二分
    Leetcode 88. 合并两个有序数组 双指针
    LeetCode 1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
    LeetCode 1743. 相邻元素对还原数组 哈希
    LeetCode 1745. 回文串分割 IV dp
    剑指 Offer 47. 礼物的最大价值 dp
    剑指 Offer 33. 二叉搜索树的后序遍历序列 树的遍历
  • 原文地址:https://www.cnblogs.com/liu1026/p/7768591.html
Copyright © 2011-2022 走看看