zoukankan      html  css  js  c++  java
  • Docker核心技术

    Docker核心技术


    1、cgroup

    即controller group,其重要概念是子系统,首先挂载子系统,然后才有control group。例如cpu子系统,挂载至系统之后,创建一个cgroup节点,之后将要限制的进行id写入,然后写入限制的cpu资源描述,完成对该进程cpu资源的控制。在很多领域可以代替虚拟化技术进行资源隔离限制。

    2、lxc

    即linux containers,是一种基于容器的操作系统级别的虚拟化技术。借助namespace的隔离机制和cgroup的资源控制来控制和创建容器。
    namespace命名空间类似各大语言中的概念,每个namespace中创建的资源都是独立的,互相看不到的。
    且是基于一个共享kernel的虚拟化技术,创建容器的时候共享host主机的kernel内核,这样可以提高性能和速度。
    但是因为共享内核,所有容器的内核版本都是一样的,没有kvm虚拟技术那么强大,因为kvm技术是会创建独立kernel的,可以在独立的内核上进行很多独立操作。

    3、aufs

    一种层状的文件系统,在修改文件的时候,aufs会先创建一个副本,在副本上进行修改保存之后,这个副本成为源文件的一个上层文件目录,与docker中镜像与容器的概念一致。
    image是不可修改的(原文件),要对其进行更新,只能根据这个image启动一个container(副本),在container中进行操作之后保存成为一个新的image(上层文件)。
    然后而并不是每次形成一个新的image都是完全的复制原image一份,宗旨是:相同的公用,不相同的才独立保存。
    也就是说,一个新的image中(例如apache服务器),其依赖的各种library都是一个debain image提供的,只有apache服务器的安装部分是其独有的。

    使用建议

    * 一个container中运行尽量少的app(例如1个);
    * 不要什么都往container中装,只装必要的;
    * container内不建议有运行期需要修改的配置文件;
    * 尽量重用公开的基础镜像;
    

    使用docker命令其实就是和docker daemon打交道,可以将其理解为一个大container,其中运行着各种各样用户启动的container。

    /var/lib/docker/graph 中存储着image的分层信息
    /var/lib/dokcer/devicemapper/devicemapper/data 存储了image和container的二进制数据文件
    /var/lib/docker/devicemapper/devicemapper/matadata 存储了相关元数据

    Volume

    aufs系统每次修改文件都先复制副本,然后在副本上操作,这样一来对于频繁的写操作会消耗大量资源,这时候应该使用Volume。
    直接和本地文件系统关联,和本地写文件没有差别。
    高频写文件例子:日志,数据库等。
    可将多个容器的Volume挂在到宿主机的同一目录实现文件共享。
    –volume-from 容器名,直接挂载到该容器挂载的目录,存在的意义:使用-v是写死的路径,不适合移植,而且在Dockerfile中是不允许这么做的,另外别的容器可能是不知道这个挂载路径的。

    –link 容器名:别名
    会在容器/etc/hosts中生成一条ip映射记录,并且在防火墙中会生成相应的规则

    shipyard
    cadvisor

    作者:@小黑

  • 相关阅读:
    HDU 6182 A Math Problem 水题
    HDU 6186 CS Course 位运算 思维
    HDU 6188 Duizi and Shunzi 贪心 思维
    HDU 2824 The Euler function 欧拉函数
    HDU 3037 Saving Beans 多重集合的结合 lucas定理
    HDU 3923 Invoker Polya定理
    FZU 2282 Wand 组合数学 错排公式
    HDU 1452 Happy 2004 数论
    HDU 5778 abs 数论
    欧拉回路【判断连通+度数为偶】
  • 原文地址:https://www.cnblogs.com/jchubby/p/5449365.html
Copyright © 2011-2022 走看看