zoukankan      html  css  js  c++  java
  • 【Linux】【Services】【Docker】基础理论

    1. 名称空间:NameSpace

    内核级别,环境隔离;


    1.1. 名称空间的历史
    PID NameSpace:Linux 2.6.24 ,PID隔离
    Network NameSpace:Linux 2.6.29,网络设备、网络栈、端口等网络资源隔离
    User NameSpace:Linux 3.8,用户和用户组资源隔离
    IPC NameSpace:Linux 2.6.19,信号量、消息队列和共享内存的隔离
    UTS NameSpace:Linux 2.6.19,主机名和域名的隔离;
    Mount NameSpace:Linux 2.4.19,挂载点(文件系统)隔离;

    1.2. API 
    clone()

    setns()

    unshare()

    2. CGroup:Linux Control Group, 控制组, Linux 2.6.24
    内核级别,限制、控制与一个进程组群的资源;

    2.1. 资源:CPU,内存,IO

    2.2. 功能:
    Resource limitation:资源限制;
    Prioritization:优先级控制;
    Accounting:审计和统计,主要为计费;
    Control:挂起进程,恢复进程;

    e.g.
    /sys/fs/cgroup
    mount
    lssubsys -m


    2.3. CGroups的子系统(subsystem):
    blkio:设定块设备的IO限制;
    cpu:设定CPU的限制;
    cpuacct:报告cgroup中所使用的CPU资源;
    cpuset:为cgroup中的任务分配CPU和内存资源;
    memory:设定内存的使用限制;
    devices:控制cgroup中的任务对设备的访问;
    freezer:挂起或恢复cgroup中的任务;
    net_cls:(classid),使用等级级别标识符来标记网络数据包,以实现基于tc完成对不同的cgroup中产生的流量的控制;
    perf_event:使用后使cgroup中的任务可以进行统一的性能测试;
    hugetlb:对HugeTLB系统进行限制;

    2.4. CGroups中的术语:
    task(任务):进程或线程;
    cgroup:一个独立的资源控制单位,可以包含一个或多个子系统;
    subsystem:子系统
    hierarchy:层级

    3. AUFS:UnionFS
    3.1. UnionFS:把不同的物理位置的目录合并到同一个目录中。

    3.2. Another UFS, Alternative UFS, Adanced UFS

    3.3. Device mapper/OverlayFS:由于Redhat并不原生支持AUFS,但是为了适应Docker技术,在RHEL6中引进的文件系统,也可以使用OverlayFS,但是需要额外的配置

    配置CentOS支持AUFS见:https://www.jianshu.com/p/63fdb0c0659c

    AUFS的RPM下载源:https://yum.spaceduck.org/kernel-ml-aufs/kernel-ml-aufs.repo

    AUFS实验:https://segmentfault.com/a/1190000008489207

    DeviceMapper实验:http://www.infoq.com/cn/articles/analysis-of-docker-file-system-aufs-and-devicemapper


    Linux 2.6内核引入的最重要的技术之一,用于在内核中支持逻辑卷管理的通用设备映射机制;
    Mapped Device
    Mapping Table
    Target Device

    4. Docker:
    2013, GO, Apache 2.0, dotCloud

    C/S:
    Docker Client: 发起docker相关的请求;
    Docker Server: 容器运行的节点;

    4.1. 核心组件:
    docker client:docker的客户端工具,是用户使用docker的主要接口,docker client与docker daemon通信并将结果返回给用户;
    docker deamon:运行于宿主机上,Docker守护进程,用户可通过docker client与其交互;
    image:镜像文件是只读的;用来创建container,一个镜像可以运行多个container;镜像文件可以通过Dockerfile文件创建,也可以从docker hub/registry下载;
    repository
    公共仓库:Docker hub/registry
    私有仓库:docker registry

    docker container:docker的运行实例,容器是一个隔离环境;

    另外两个重要组件:
    docker link:
    docker volume:

    5. Docker功能:
    隔离应用
    维护镜像
    创建易于分发的应用
    快速扩展

  • 相关阅读:
    第六章 函数与宏定义实验
    第五章 循环结构实验
    第五章 循环结构课内反思
    第四章 分支结构实验
    C程序设计实验报告
    509寝室小组
    第九章 构造数据类型实验
    第八次实验报告
    数组实验
    函数与宏定义实验
  • 原文地址:https://www.cnblogs.com/demonzk/p/7793768.html
Copyright © 2011-2022 走看看