美文网首页
一周一本书之《docker进阶与实践》第一篇

一周一本书之《docker进阶与实践》第一篇

作者: 两颗酸橙子 | 来源:发表于2020-08-14 09:04 被阅读0次

    这是一本硬核的书,为什么这么说呢?

    第一,从背后的支持的理论分析,得出docker不是什么新的技术

    第二,从产业背景的分析,docker从一个工具型软件逐渐变成一个分布式的容器的解决方案

    第三,从安全性来说,天生就是不怎么安全

    第四,从编排工具来看,谷歌的k8s,docker的原生的编排工具,沦为二等市民

    这本书我打算写四篇文章

            这是第一篇。 docker 背后的理论支持

    容器=cgroup+namespace+rootfs+容器引擎(用户态工具)

            Cgroup: 资源控制

            NameSpace:  访问隔离

            rootfs:文件隔离隔离

            容器引擎: 生命周期的控制

           第一个理论 cgroup

    主要是做资源控制。其原理是将一组进程放在一个控制组里,通过给这个控制组分配指定的可用资源,达到控制这一组进程可用资源的目的。这些资源包括,cpu,内存,block i/o和网络带宽。

    devices :设备全县控制

    cpuset:分配制定的cpu和内存节点

    cpuacct: 统计cpu使用情况

    memory:限制使用内存的上限

    freezer: 冻结(暂停)Cgroup 中的进程

    net_prio: 设置进程的网络流量优先级

    huge_tlb: 限制hugeTLB的使用

    pref_event:允许perf工具基于Cgroup分组做性能测试

    cpu:控制cpu占用率

            第二个理论 namespace

    namespace是将内核的全局资源封装,使得每个Namespce都有一份独立的资源。因此不同的进程在各自namespace内对同一种资源的使用不会相互干扰。

    目前liunx内核总共实现了6种namespace:

    IPC:隔离System V IPC和POSiX 消息队列

    network:隔离网络资源

    mount: 隔离文件系统的挂载点

    PID: 隔离进程ID

    UTS: 隔离主机和域名

    User:隔离用户ID和组ID

            第三个好用的restful接口

    简洁好用的Docker api对docker 及其周边生态的迅速崛起起到不可估量的促进作用。依赖于良好的设计以及rest架构与生而来优势,Docker APi向业界清晰表明了docker强大的功能以及灵活性。

    容器造就docker

            关于docker是否是docker的核心技术,业界一直存在争议。有人认为Docker的核心技术是对分层景象的创新使用,也有人认为其统一了打包的分发和部署方式,为服务器级别的“应用商店”提供了可能。但是这一切靠的都不是容器技术,hype也可以实现。

    docker 的诞生主要是为了完善当时的lxc,使用户可以更方便的使用容器,让容器可以更好的应用到项目开发和部署的各个流程中。从一开始lxc就是docker的唯一容器引擎。可以说,docker 是为了容器而生。

        docker 一起发展和被大家熟知的,还有被叫做的“微服务(micro service)”的设计哲学。

    这把docker容器的优势发挥的凌厉尽致。容器作为liunx平台的轻量级虚拟化,及其核心优势是跟内核的无缝融合,其在运行效率上的优势和极小的系统开销,与需要将各个组件单独部署的微服务应用完美融合。而且微服务在隔离性问题上更加可控,这也避免了容器相对传统虚拟机的短板。


    相关文章

      网友评论

          本文标题:一周一本书之《docker进阶与实践》第一篇

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