@ranger-01
2018-05-14T19:27:34.000000Z
字数 1728
阅读 1384
docker
容器规范
容器不管只是Docker, 还有CoreOS的 rkt。有了容器规范,不同组织和厂商的容器能够在不同的runtime上运行。保证容器的可移植性
容器runtime
runtime是容器真正运行的地方,runtime需要跟OS kernel紧密协作,为容器提供运行环境。
容器管理工具
光有 runtime 还不够,用户得有工具来管理容器啊。容器管理工具对内与 runtime 交互,对外为用户提供 interface,比如 CLI。
容器定义工具
容器定义工具允许用户定义容器的内容和属性,这样容器就能够被保存,共享和重建。
Registries
容器是通过 image 创建的,需要有一个仓库来统一存放 image,这个仓库就叫做 Registry。
容器OS
容器 OS 是专门运行容器的操作系统。与常规 OS 相比,容器 OS 通常体积更小,启动更快。因为是为容器定制的 OS,通常它们运行容器的效率会更高。
容器平台技术能够让容器作为集群在分布式环境中运行。
容器编排引擎
微服务架构中,应用被分为不同的组件,每个组件可能会运行多个相同的容器。这些容器组成集群,集群中的容器会根据业务需要被动态的创建,迁移,销毁
所谓编排(orchestration),通常包括容器管理、调度、集群定义和服务发现等。通过容器编排引擎,容器被有机的组合成微服务应用,实现业务需求
容器管理平台
容器管理平台是架构在容器编排引擎之上的一个更为通用的平台。抽象了编排引擎的底层实现细节,为用户提供更方便的功能。
基于容器的PaaS
下面这些技术被用于支持基于容器的基础设施。
容器网络
容器的出现使网络拓扑变得更加动态和复杂。用户需要专门的解决方案来管理容器与容器,容器与其他实体之间的连通性和隔离性。
服务发现
动态变化是微服务应用的一大特点。当负载增加时,集群会自动创建新的容器;负载减小,多余的容器会被销毁。容器也会根据 host 的资源使用情况在不同 host 中迁移,容器的 IP 和端口也会随之发生变化。
在这种动态的环境下,必须要有一种机制让 client 能够知道如何访问容器提供的服务。这就是服务发现技术要完成的工作。
监控
数据管理
容器经常会在不同的 host 之间迁移,如何保证持久化数据也能够动态迁移
日志管理
日志为问题排查和事件管理提供了重要依据
安全性
OpenSCAP 能够对容器镜像进行扫描,发现潜在的漏洞。
容器是一种轻量级,可移植,自包含的软件打包技术,使应用程序可以在任何地方以相同的方式运行。build once, run anywhere。
容器
容器在 Host 操作系统的用户空间中运行,与操作系统的其他进程隔离。
容器由两部分组成:
虚拟机
传统的虚拟化技术,比如 VMWare, KVM, Xen,目标是创建完整的虚拟机。为了运行应用,除了部署应用本身及其依赖(通常几十 MB),还得安装整个操作系统(几十 GB)。
简要的答案是:容器使软件具备了超强的可移植能力。
Docker 采用的是 Client/Server 架构。客户端向服务器发送请求,服务器负责构建、运行和分发容器。客户端和服务器可以运行在同一个 Host 上,客户端也可以通过 socket 或 REST API 与远程的服务器通信。