俗话说工欲善其事,必先利其器,Docker 是一种具体的虚拟化技术,Docker 虽然以RestAPI形式提供服务,但在实际生产环境中,管理大规模集群部署的Docker容器确实是一个巨大的挑战。虽然Docker对于DevOps来说,是一场革命,但是在缺乏集群管理工具的时候,DevOps的难度一点都没有降低,甚至更大。
最近想找一款比较方便易用的Docker工具来开始Docker的深入研究,搜集了一些比较好的工具,摘录下来。
软件项目的成功常常根据其催生的生态系统来衡量。围绕或基于核心技术构建的项目增添了功能和易用性,它们常常日臻完善。Docker就是一个典例,这个软件容器化系统让IT部门可以专注于应用程序、而不是虚拟机,作为生产的标准单位。
Docker一向备受第一方和第三方开发人员的关注,而众多项目扩展、补充或改进Docker,却没有成为Docker的一部分。下面是如今正在开发中的10个最知名的项目,从长远来看,有些项目有机会成为Docker的一部分。
1.Kubernetes
谈论第三方Docker项目自然少不了提到Kubernetes,这是谷歌开发的一款开源Docker管理工具,用于跨计算机集群部署容器。除了通过让集群上部署的容器保持均衡,从而有助于管理Docker节点的工作负载外,Kubernetes还提供了让容器可以彼此联系的方法,不需要开启网络端口或执行其他操作。这些功能,加上Kubernetes用Go编写的事实(Docker也用这种语言编写),强烈表明它在未来某个时间会并入到Docker。
项目:Kubernetes
GitHub:https://github.com/GoogleCloudPlatform/kubernetes
2.DockerUI
虽然大多数开发人员和管理人员通过命令行来创建及运行Docker容器,但Docker的Remote API让他们可以通过充分利用REST(代表性状态传输协议)的API,运行相同的命令。这时,DockerUI有了用武之地。这个Web前端程序让你可以处理通常通过Web浏览器的命令行来管理的许多任务。某一个主机上的所有容器都可以通过仅仅一条连接来处理,该项目几乎没有任何依赖关系。不过,它仍在大力开发之中,但是它采用麻省理工学院(MIT)许可证,所以可以免费地重复使用。此外,它不包含任何内置的身份验证或安全机制,所以务必将任何公之于众的DockerUI连接放在用密码来保护的系统后面。
3.Docker compose
Docker compose 是容器编排工具,让用户可以自定义容器的镜像,容器之间的依赖关系等等。定义好这些信息之后,我们只需要一条命令就可以按照顺序启动容器,然后整个应用就部署好了,这对于自动化来说,又是一个很好的进步。对于应用编排来说,Compose是非常不错的选择。
4.Docker machine
Docker machine 是一个便捷的容器创建工具,即从0到1地安装docker,极大地简化了安装过程。使用Docker-machine create 命令即可,-d 参数制定虚拟化的驱动即可在相应的平台上创建docker。
5.docker swarm
Docker swarm 是Docker 的集群管理工具,能够通过master / slave 的方式管理跨主机的Docker,为Docker集群化的部署提供了非常好的支持。
6.Docker Datacenter
docker datacenter 是docker 自动的集群管理工具,并非第三方工具,其实是一个基于Docker 的管理平台。这个平台是docker 本身的无缝集成,相信也更全面。
7.Apache Mesos
Mesos 名声在外,一直被看作扛鼎之作,个人也很看好Mesos,毕竟基于这个可以做很好的扩展,开发个性化的Docker集群管理工具。
8.Data Dog
Docker 性能监控工具,据说很不错.其他的性能监控工具也在这里有介绍.
9.Scout
Scout 也是一款监控工具
10.Marathon
Marathon 是一个与Mesos结合在一起的Docker集群管理工具。支持在Mesos之外调度容器。