美文网首页
2020-09-27

2020-09-27

作者: 小浪浮华 | 来源:发表于2020-09-28 17:56 被阅读0次


    Docker版本


    2017年3月之后,Docker的版本命名开始发生变化,同时将CE版本和EE版本进行分开。

    Docker社区版(CE):为了开发人员或小团队创建基于容器的应用,与团队成员分享和自动化的开发管道。docker-ce提供了简单的安装和快速的安装,以便可以立即开始开发。docker-ce集成和优化,基础设施。

    Docker企业版(EE):专为企业的发展和IT团队建立。docker-ee为企业提供最安全的容器平台,以应用为中心的平台。

    相关内核技术


    docker容器本质上是宿主机的==进程==. 可以把docker容器内部跑的进程看作是宿主机的线程。

    Docker通过==namespace实现了资源隔离==

    通过==cgroups实现了资源限制==

    NameSpace

    Linux内核实现namespace的一个主要目的就是实现轻量级虚拟化(容器)服务。在同一个namespace下

    的进程可以感知彼此的变化,而对外界的进程一无所知。

    inux内核提拱了6种namespace隔离的系统调用

    namespace 系统调用参数 隔离内容

    UTS: 每个NameSpace都拥有独立的主机名或域名,可以把每个NameSpace认为一个独立主机。

    IPC: 每个容器依旧使用linux内核中进程交互的方法,实现进程间通信

    PID: 每个容器都拥有独立的进程树,而容器是物理机中的一个进程,所以容器中的进程是物理机的

    线程

    Net: 每个容器的网络是隔离

    Mount: 每个容器的文件系统是独立的

    User: 每个容器的用户和组ID是隔离,每个容器都拥有root用户

    小结: 应用程序运行在一个隔离的空间(namespace)内, 每个隔离的空间都拥有独立的

    UTS,IPC,PID,Net,Mount,User.

    Control Group

    控制组(CGroups)是Linux内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。

    只有能控制分配到容器的资源,才能避免多个容器同时运行时对宿主机系统的资源竞争。

    控制组可以提供对容器的内存、CPU、磁盘IO等资源进行限制和计费管理。

    内容小结


    容器属于操作系统虚拟化,属于Paas

    容器可看作是一种轻量级,进程级的虚拟机

    相比于KVM虚拟机的优势

    不需要安装OS,和宿主机共享

    镜像存储空间小

    启动速度快(容器为秒级,虚拟机一般需要10秒左右)

    移植性更好,更轻便

    性能更好

    docker是一个实现容器的软件,底层使用LXC

    docker主要使用namespace命名空间技术实现资源隔离,使用cgroup实现资源限制

    相关文章

      网友评论

          本文标题:2020-09-27

          本文链接:https://www.haomeiwen.com/subject/hmwluktx.html