第09课:后记-Docker

第09课:后记-Docker 生态

通过之前的学习,相信读者对于 Docker 的基本使用已经了然于心。但是,仅仅只会基本使用是远远不够的,就好像学习一门编程语言,仅仅熟悉语法是远远不够的,你还要熟悉语言的生态,常用的框架等等。

同样,在熟悉了 Docker 的基本用法之后,很有必要学习 Docker 的一些著名的项目。但是由于本课程是 Docker 基础入门课程,无法面面俱到,所以这些进阶内容我们仅仅简单介绍一下,读者可以根据自己的兴趣和需求选择性深入学习。一下篇幅主要参考了 Google 和 Docker 官网以及 GitHub 的相关信息,并结合自己经验撰写此文。

三个著名的官方项目

Docker Compose

enter image description here

参考链接 点击进入

Compose 是 Docker 的一个官方开源项目,主要用来实现 Docker 容器集群的快速编排。之前我们介绍过 Dockerfile,使用 Dockerfile 用户可以方便快捷地定制镜像。然而有时候,一个应用是由几个容器配合完成的,比如 Web 需要前端,后端,和数据库容器,可能还需要负载均衡。使用 Compose,你可以使用一个 yaml 文件来配置一个容器集合,然后使用一条指令启动集合内所有的容器服务。

Compose 的使用主要包括以下3个步骤:

  • 编写需要的 Dockerfile
  • 编写 docker-compose.yml
  • 运行 docker-compose up

Docker Machine

enter image description here

参考链接 点击进入

Docker machine 是 Docker 官方编排项目之一,主要用来在多平台快速安装 Docker,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。你可以这样理解,Docker Machine 是一个简化 Docker 安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装 Docker。上面的图片形象地说明了这一点!

Docker Swarm

enter image description here

参考链接 点击进入

Docker swarm 设计的初衷是方便地使用 Docker 命令来管理多台服务器之间的容器调度。Swarm 本来是一个独立项目,在 Docker1.12 之后被集成到 Docker engine 里面,成为 Docker 的一个子命令。Swarm 100%支持标准 Docker API,作为容器的集群管理器,它通过把多个 Docker Engine 聚集在一起,形成一个大的 docker-engine,对外提供容器的集群服务。同时这个集群对外提供 Swarm API,用户可以像使用 Docker Engine 一样使用 Docker 集群。

监控工具

本小节主要介绍一些容器监控工具(参考资料链接

  • Docker stats 命令

作为 Docker 集成的命令,使用 stats 命令的好处是简单方便,无需另外安装其它软件即可使用。这条命令可以查看容器 CPU 利用率,内存占用等。但是这条指令功能确实比较简陋,无法提供高级服务。

  • CAdvisor

enter image description here

CAdvisor 可以让用户在图形界面中查看 docker stats 得到的信息,作为一个易于设置并且很有用的工具,可以在网页查看资源占用信息而无需 ssh 登录到宿主主机,并且 CAdvisor 还可以生成可视化图表

Cadvisor 开源免费 ,但是缺点是只能监控一个主机。更多资料参见 https://github.com/google/cadvisor

  • Scout

enter image description here

Scout 解决了 ADvisor 的局限性,它可以在多个主机和容器中获得监测数据,并可以根据检测数据生成图表和警报,但是它是收费的。另外,Scout 支持大量的插件,除了 Docker 的监控,还可以监控各种其它信息,这些特性使得 Scout 成为一个一站式监控系统,它的缺点是无法显示每个容器的详细信息。更多资料参见官网 https://scoutapp.com/

  • Data Dog

enter image description here

DaTA Dog 解决了 ADvisor 和 Scout 存在的一些问题,易于部署,可以提供详细的监控信息以及监控非 Docker 资源的能力,可以方便地生成任何容器的任何指标的图表,虽然它很优秀,但是收费也会更加高昂。更多资料参考官网 https://www.datadoghq.com/

  • Sensu

enter image description here

Scout 和 Datadog 提供集中监控和报警系统,然而它们都是被托管的服务,大规模部署的话成本会很突出。如果你需要一个自托管、集中指标的服务,可以考虑 Sensu。你可以使用插件配置使 Seusu 支持 Docker 容器指标。Sensu 几乎支持我们需要的所有评价标准,你可以获得足够多的监控细节,但是美中不足的是 Sensu 的警报能力有限,另外,Sensual 虽然免费,但是部署难度较大。更多资料参见官网 https://sensuapp.org/

  • Weave Scope

enter image description here

哈哈,最终还是要提一下我们在上一篇文章使用的 Weave Scope 监控系统,开源免费,界面友好,易于安装,并且支持和 Docker 容器交互,是我目前最喜欢的!更多资料参考 github https://github.com/weaveworks/scope

容器与云计算

目前,越来越多的公有云平台支持 Docker。下面,挑选一些主要的公司进行介绍。

  • Amazon

enter image description here

亚马逊 Web 服务,即 AWS(Amazon Web Service),是亚马逊公司推出的云服务。近年,亚马逊推出了 EC2 容器服务,让 Docker 容器更加简单。你可以通过 AWS 官网注册并使用 AWS 服务,EC2 服务允许你弹性配置云服务器。不过亚马逊云的价格对于国内用户来说并不是很友好,并且需要 Visa 或者 Master 信用卡才能注册,虽然 AWS 的网络延时应该是我见过的最小的,但是国内用户并不推荐。更多信息参见官网

  • 阿里云

enter image description here

2009年,阿里公司创建阿里云,是中国起步较早的云服务平台。阿里云提供高性能、可伸缩的容器云服务,容器服务简化用户容器管理集群的搭建,十分方便。并且,学生用户不定期有优惠!更多信息参见官网

  • 腾讯云

enter image description here

腾讯公司多年来积累了大量互联网服务经验,涵盖游戏、社交、网购等多个领域。腾讯云具体包括云服务器、云存储、云数据库和弹性 Web 引擎等基础云服务;腾讯云分析(MTA)、腾讯云推送等腾讯整体大数据能力以及 QQ 互联、QQ 空间、微云等云端链接社交体系。

腾讯云容器服务是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序,只需进行简单的 API 调用,便可操作容器。更多信息参见官网

终焉

经过将近2个月的写作,这个达人课终于到了最后一步。在这期间,我深深意识到“自己懂”和“把知识有条理地表述出来”之间有着一道鸿沟。这个达人课主要面向完完全全零基础的 Docker 初学者,如果你一步一步跟随教程动手操作的话,相信你已经入门了 Docker 的使用!

Docker 在运维,云服务,虚拟化,应用部署,微服务等方面有很多应用,有了这门课做基础,相信读者在继续探索 Docker 的时候一定会更有信心!

好了,本课程到这里就全部结束了,感谢读者的耐心阅读,谢谢!

上一篇
下一篇
目录