Docker 是近一两年来发展最快的技术。很多公司都在使用 Docker(或容器)技术。有的只是用 Docker 来构建本地开发环境,但越来越多的公司是在利用容器技术彻底改造已有的架构和部署流程。本文对当今的容器生态环境做一个简单介绍。
引擎 / 运行环境
容器引擎是容器技术的核心。引擎通常以一些说明性的描述,比如Dockerfile,来创建和运行容器。谈论 Docker 时,一般指的就是 Docker 引擎。
- Docker Engine 是当前最流行的引擎,也是事实的工业标准。
- rkt 是CoreOS 团队主导的开源引擎,用于替代 Docker 引擎。
支持 Docker 的云服务商
云服务商已经在他们的平台上提供运行容器的解决方案。一些是内部的解决方案,其它的则是基于开源软件。当然在云主机上安装 Docker来运行容器是没有任何问题的。不过,大多数云服务商的容器服务更进一步地提供了更为简洁友好的用户管理界面。
- Amazon EC2 Container Service 在 EC2 实例上运行容器服务。容器服务免费,只需要支付 EC2 费用。
- Google Container Engine 构建于 Kubernetes(由Google发起的开源容器编排项目) 之上。
- Azure (Microsoft 提供)提供基于Mesos的Docker容器支持。
- Stackdock 提供 Docker 容器托管。
- Tutum 提供 Docker 容器托管。
- GiantSwarm 是一家提供运行于容器内微服务架构的定制与托管的云平台。
- Joyent Triton 提供 Docker 容器监控和托管。
- Jelastic Docker 为容器部署提供云托管编排工具。
容器编排工具
容器编排工具现在是最具竞争的领域之一。管理少数几个容器很简单,但是调度、管理以及监控大规模容器很具有挑战性。容器编排工具处理多种多样任务,比如查找最优的位置或者服务器来运行容器,处理失败的任务,分享储存卷或者创建负载均衡与容器间通讯的覆盖网络。
常见的编排项目有:
- Kubernetes Google 开源的工具,它是基于Google的内部容器设施,并且在功能特性方面是当前最先进的工具。
- Docker Swarm 允许在Docker集群中调度容器,与 Docker 环境紧密集成。
- Rancher 在机器集群上以
stack
(linked容器)为单位管理容器。它有直观的界面和良好的文档以及本身运行在容器内部。 - Mesosphere 通用的数据中心管理系统。不是专为 Docker 开发,但是能轻松管理容器,也可以与其它编排系统如 Kubernetes 集成,或者与像Hadoop的传统服务集成。
- CoreOS fleet CoreOS操作系统的一部分,管理在 CoreOS 集群中任何调度命令(比如运行Docker或者rkt容器)。
- Nomad 通用的应用调度工具,内置支持 Docker。
- Centurion Newrelic 的内部部署工具。
- Flocker 运行在不同主机的容器间数据/Volume迁移工具。
- Weave Run 提供微服务架构的服务发现、路由、负载均衡和地址管理。
操作系统
你可以在任何操作系统来运行容器,但是企业正越来越多的容器化他们整个基础设施。因此,为Docker或者相关服务运行一个最小化操作系统是非常有意义的。
- CoreOS 为自动更新设计以及着重在机器集群之间的运行容器。不仅与systemd的fleet调度器交付,而且支持其它编排系统。
- Project Atomic 运行Docker、Kubernetes、rpm、systemd的轻量级操作系统。
- Rancher OS 只有 20MB 大小用容器运行整个操作系统。 它区分
系统容器
和用户容器
,他们运行在分离的Docker守护进程中。 - Project Photon VMWare 开源的工具。
容器镜像仓库 Registry
镜像Registry是“容器镜像的GitHub”,你可以与你的团队或者其他人分享容器镜像。
- Docker Registry 最流行的开源registry。你可以在自己的设施上运行或者使用Docker Hub。
- Docker Hub 提供了直观的界面、自动化构建、私有仓库以及众多官方镜像。
- Quay.io CoreOS 开发的容器仓库。
- CoreOS Enterprise Registry 着重提供细化权限和审计跟踪。
监控
容器输出的日志可以很方便与已有日志收集工具整合。容器监控软件通常关注容器的资源使用情况(CPU、内存)。
- cAdvisor Google 开源项目。分析容器的资源使用和性能特性,可以用 InfluxDB 作为数据存储,以便后续分析。
- Datadog Docker 收集容器的运行信息,发送到 Datadog 分析。
- NewRelic Docker 发送容器统计信息到 NewRelic 的云服务。
- Sysdig 监控容器资源使用情况。
- Weave Scope 自动生成容器关系图,有助于理解、监控和控制应用服务。
- AppFormix 实时基础设施监控,支持 Docker 容器。
本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-10-13