• Docker生态系统


    鸟瞰容器生态系统

    容器生态系统

            容器核心技术,容器平台技术,容器技术支持

        容器核心技术:能够让Container(容器),在host上运行起来的那些技术

    包括:(容器规范、容器runtime、容器管理工具、容器定义工具、Registries、容器OS)

    • 容器规范:

    runtime spec(运行规范)和image format spec(镜像格式规范)

        这两个规范可让不同组织和厂商开发的容器能够在不同的runtime上运行,保证了容器的可移植性和互操作性。

    • 容器runtime:

    容器真正运行的地方,runtime和操作系统的kernel紧密协作,为容器提供运行环境。

    lxc(linux上的老牌容器runtime)、runc(docker自己开发的容器runtime,现在磨人的runtime)、rkt(CoreOS开发的runtime)是目前主流的三种容器runtime。

    • 容器管理工具:

    对内与runtime交互,对外为用户提供interface

    lxd是lxc对应的管理工具

    docker enginerunc对应的管理工具,包含后台deamon和cli两个部分

    rkt clirkt的管理工具

    • 容器定义工具:

    允许用户定义容器的内容和属性,使容器能够被保存、共享和创建

    docker imagedocker容器的模板,runtime依据docker image创建容器

    dockerfile 包含若干命令的文本文件,可以通过这些命令创建出docker image

    ACI (APP Container Image):与docker image类似,有CoreOS开发的rkt容器的image格式

    • Registry:

    通过image创建的,存放image的仓库。

    Docker Hub (https://hub.docker.com/)docker为公众提供的托管Registry

    • 容器OS:

    专门的容器操作系统,与常规的OS相比,容器OS通常体积更小,启动更快,是专门为容器定制的OS

    容器技术平台:

        容器的核心技术使得容器能够在单个host上运行,而容器平台技术能够让容器作为集群在分布式环境中运行。

    • 容器编排引擎:

    基于容器的应用一般会采用微服务架构。这种架构下,应用被划分为不同的组件,并以服务的形式运行在各自的容器中,通过API对外提供服务。为保证应用的高可用,每个组件都可能运行多个相同的容器,这些容器会组成群集,群集中的容器会根据业务需要被动态地创建、迁移和销毁。

        编排(orchestration):

    通常包括容器管理、调度、集群定义和服务发现等。通过容器编排引擎,容器被有机地组合成微服务应用,实现业务需求。

    docker swarm:docker开发的容器编排引擎

    Kubernetes:Google领导开发的容器编排引擎,同时支持Docker和CoreOS容器

    Mesos:通用的集群资源调度平台,mesos与marathon一起提供容器编排引擎功能。

     

    • 容器管理平台:

    容器管理平台是架构在容器编排引擎之上的一个更为通用的平台。

    通常支持多种编排引擎

    典型代表:Rancher和ContainerShip

    • 基于容器的Paas:

    为开发人员和公司提供了开发、部署和管理应用的平台

    典型代表:Deis、Flynn和Dokku

     

    容器支持技术:

        被用于支持基于容器的基础设施

    • 容器网络:

    容器的出现使网络拓扑变得更加动态和复杂。用户需要专门的解决方案来管理容器与容器、容器与其他实体之间的连通性和隔离性。

    Docker network是docker原生的网络解决方案,除此之外还可采用第三方开源解决方案:flannel、weave和calico。不同方案的设计和实现方式不同,各有优势和特点,可根据时间需要来选型。

    • 服务发现:

    动态变化是微服务应用的一大特点。

    当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。容器也会分局host的资源使用情况在不同host中迁移,容器的IP和端口也会随之发生变化。

    服务发现会保存容器集群中所有微服务最新的信息

    • 监控:

    监控对于基础架构非常重要,而容器的动态特征对监控提出更多挑战。

    docker ps/top/stats 是Docker原生的命令行监控工具。

    Sysdig、cAdvisor/Heapster和Weave Scope是其他开源的容器监控方案

    • 数据管理:

    容器经常会在不同的host之间迁移 Rex-Ray数据管理工具提供保证持久化数据能够动态迁移

    • 日志管理:

    日志为问题排查和事件管理提供了重要依据

    工具:

    docker logs:docker原生的日志工具

    logspout:对日志提供了路由功能,可收集不同容器的日志并转发给其他工具进行后处理

    • 安全性:

    OpenSCAP:能够对容器镜像进行扫描,发现潜在的漏洞

     

                                                                        根据《每天五分钟玩转docker容器技术》总结

  • 相关阅读:
    vue 如何在循环中 "监听" 的绑定v-model数据
    验证正则表达式,同时验证手机号码和固定电话号码
    vue 图片上传功能
    localStorage使用总结
    vue2.0 父子组件通信 兄弟组件通信
    SVN使用教程总结
    详解SVN 的使用
    彻底理解setTimeout()
    如何实现一个HTTP请求库——axios源码阅读与分析 JavaScript
    2、Zookeeper原理及应用汇总
  • 原文地址:https://www.cnblogs.com/xxknight/p/11440791.html
Copyright © 2020-2023  润新知