[关闭]
@ranger-01 2018-05-14T19:27:34.000000Z 字数 1728 阅读 1384

精通Docker --- 容器概述

docker


1. 容器生态系统

1.1 容器核心技术

image_1cd20vvd3603hod71h15kp1mfcp.png-107.5kB

  1. 容器规范
    容器不管只是Docker, 还有CoreOS的 rkt。有了容器规范,不同组织和厂商的容器能够在不同的runtime上运行。保证容器的可移植性
    image_1cd212e7h1hpsj461f34o041kvp16.png-56.7kB

    • runtime spec
    • image format spec
  2. 容器runtime

    image_1cd21boamgpciv4advds1efop.png-48.2kB

    runtime是容器真正运行的地方,runtime需要跟OS kernel紧密协作,为容器提供运行环境。

  3. 容器管理工具

    image_1cd21cau5r316u6c751a091vdu16.png-72.4kB

    光有 runtime 还不够,用户得有工具来管理容器啊。容器管理工具对内与 runtime 交互,对外为用户提供 interface,比如 CLI。

  4. 容器定义工具

    image_1cdesvtifc2r1nko128a8fmhumm.png-87.1kB

    容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存,共享和重建。

  5. Registries

    image_1cdet0mt01d4d14qs1sd1i1619me13.png-43.2kB

    容器是通过 image 创建的,需要有一个仓库来统一存放 image,这个仓库就叫做 Registry。

  6. 容器OS

    image_1cdet18to1s2s1fplbqk10li9ve1g.png-55.1kB

    容器 OS 是专门运行容器的操作系统。与常规 OS 相比,容器 OS 通常体积更小,启动更快。因为是为容器定制的 OS,通常它们运行容器的效率会更高。

1.2 容器平台技术

容器平台技术能够让容器作为集群在分布式环境中运行。

image_1cdet1od1nnqm7t116n1tms19c01t.png-66.8kB

  1. 容器编排引擎

    image_1cdet2b0e197q1clcgdp156tb92a.png-89.8kB

    微服务架构中,应用被分为不同的组件,每个组件可能会运行多个相同的容器。这些容器组成集群,集群中的容器会根据业务需要被动态的创建,迁移,销毁
    所谓编排(orchestration),通常包括容器管理、调度、集群定义和服务发现等。通过容器编排引擎,容器被有机的组合成微服务应用,实现业务需求

  2. 容器管理平台

    image_1cdet32rt995hnm4iq14hi10k737.png-59.7kB

    容器管理平台是架构在容器编排引擎之上的一个更为通用的平台。抽象了编排引擎的底层实现细节,为用户提供更方便的功能。

  3. 基于容器的PaaS

3. 容器支持技术

下面这些技术被用于支持基于容器的基础设施。

image_1cdet4arg1rlhrqa15f4984a7l44.png-96.8kB

  1. 容器网络

    image_1cdet7dhs196r213q911rg1lij71.png-90.4kB

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

  2. 服务发现

    image_1cdet97alhi7177s1dgapf91u507u.png-57.8kB

    动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。容器也会根据 host 的资源使用情况在不同 host 中迁移,容器的 IP 和端口也会随之发生变化。
    在这种动态的环境下,必须要有一种机制让 client 能够知道如何访问容器提供的服务。这就是服务发现技术要完成的工作。

  3. 监控

    image_1cdetamc81tuedfg4ad12vd1skn8b.png-126.4kB

  4. 数据管理

    image_1cdetbdbo151n1p0mt58jnf1apo8o.png-22.6kB

    容器经常会在不同的 host 之间迁移,如何保证持久化数据也能够动态迁移

  5. 日志管理

    image_1cdetbu7k92v1o9k1ipjhj13d995.png-46.3kB

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

  6. 安全性

    image_1cdetcgar591ek3gk81lk81dpa9i.png-26.9kB

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

2. 容器是什么

容器是一种轻量级,可移植,自包含的软件打包技术,使应用程序可以在任何地方以相同的方式运行。build once, run anywhere。

2.1 容器与虚拟机区别

image_1cdetd5d61o48bhu43a5i5t1a9v.png-165.2kB

2.2 容器轻量级的原因

3. 为什么要用容器

简要的答案是:容器使软件具备了超强的可移植能力。

3.1 容器解决了什么问题

4. 容器时如何工作的

image_1cdf6eufl1najlg51lrnv9q1phi9.png-147.5kB

Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注