如今,整个容器生态系统的发展和扩展速度比以往任何时候都快,面对众多Docker工具和服务,光是了解可用选项就需要花费大量时间。本文总结了易用的50多种Docker工具,适合初学者、研发人员、DevOps工程师、SRE和平台架构师。
1、Kubernetes
Kubernetes是市场上现有最受欢迎的容器编排引擎。最初由谷歌研发,目前已被数千个团队在生产中部署使用。谷歌声称每周使用Kubernetes运行数十亿个容器。该工具的工作原理是将构成应用程序的容器分组为逻辑单元以便管理。
链接: https://kubernetes.io
成本:免费
2. Docker Swarm
Swarm是Docker对开发人员如何跨多个服务器编排和调度容器问题的回答。Swarm已经从版本1.12.0开始包含在Docker Engine中,并提供了诸如baked-in服务发现,负载平衡,扩展和安全等高级功能。
Swarm延续了Docker关注简单和开发人员体验的传统,可以说比开箱即用的Kubernetes更容易使用。
成本: 免费社区版本
3. Mesosphere DC/OS
Mesosphere Datacenter Operating System(DC/OS)是一个集成的开源平台,用于构建在Apache Mesos分布式系统内核上运行的数据和容器,旨在将数据中心内的多台计算机视为云中的一个或多个集群,或使用内部部署。DC/OS可以在同一环境中部署容器并管理无状态应用程序和有状态工作负载,适用于Docker Swarm和Kubernetes。
链接: https://dcos.io/
成本:Mesosphere DC/OS订阅包基于环境中的节点数(物理或虚拟)付费。
4. Amazon ECS
Amazon Web Services主要为了解决容器编排问题,Amazon ECS是一种高度可扩展的管理服务,允许开发人员在EC2实例上运行容器化应用程序,由多个内置组件组成,可以简单调度和部署Docker集群、任务和服务。
虽然无法在EC2之外运行容器,但其优势在于包括AWS服务,例如CloudTrail,CloudWatch,Elastic Load Balancers等。
链接: https://aws.amazon.com/ecs/
成本:Amazon ECS无需额外成本,仅为存储和运行应用程序所需的AWS资源(例如EC2实例或EBS卷)付费。
5. Azure Container Service (AKS)
前不久,该服务从ACS变为AKS,这是一种开源管理服务,针对Azure虚拟机进行优化。AKS提供创建、配置和管理开放式Docker容器所需的工具。AKS提供简化的基于容器的应用程序开发和部署,支持运行Kubernetes、Mesospere DC/OS或Swarm。
链接:
https://azure.microsoft.com/en-us/services/container-service/
成本:仅支付虚拟机以及使用的相关存储和网络资源。
6. Google Container Engine (GKE)
在Kubernetes的支持下,GKE可以在Google Cloud上部署、管理和扩展容器化应用程序。GKE的目标是通过管理基于容器的工作负载来优化IT团队工作效率,将复杂的逻辑隐藏在简单的用户体验和命令行工具背后。
Kubernetes是GKE的支柱。虽然不需要学习它来使用GKE,但如果了解基础知识会有所帮助。
链接: https://cloud.google.com/container-engine/
成本:每个集群可免费获得0-5个节点,6个以上节点大概0.15美元/小时(109.50美元/月)
7. Cloud Foundry’s Diego
Cloud Foundry使用其Diego架构管理环境中的应用程序容器。 Garden遵循Linux的Open Container Initiative主机容器指南,并通过Diego的其他组件进行抽象,Diego元素通过Cloud Controller提供应用程序调度和管理功能。
链接: https://docs.cloudfoundry.org/concepts/diego
成本: 免费
8. Marathon
Marathon是基于Apache Mesos构建的PaaS服务。Marathon框架承诺扩展Dockerized应用程序,并在必要时扩展到更多节点以增加可用资源池。此外,Marathon可以充当容器编排工具,为容器化工作负载提供故障恢复。Marathon自动处理硬件或软件故障,并确保应用程序“始终开启”。
链接: https://mesosphere.github.io/marathon/
成本: 免费
9. HashiCorp Nomad
在Linux、Mac和Windows的支持下,Nomad是一个单一的二进制工具,能够安排所有虚拟化、容器化和独立的应用程序。从单个到数千容器,Nomad允许几分钟内在5,000个主机上运行100万个容器。 Nomad通过在更少的服务器上有效分配更多应用程序来降低成本。
链接: https://www.nomadproject.io/
成本: 免费
10. Helios
Helios最初是Spotify的内部工具,用于确保数百个微服务在数千台服务器上有效工作。它能够大规模部署和管理容器,并配备基于HTTP的API以及命令行客户端。
Helios不需要特定网络拓扑,只需要运行机器上使用ZooKeeper集群和JVM即可。
链接: https://github.com/spotify/helios
成本: 免费
11. Rancher
Rancher不仅是容器协调器,也是一个完整的容器管理平台,用于在生产中运行Docker。RancherOS是一种基于容器的操作系统(OS),能够提供许多基础架构服务,例如全局和本地负载平衡、多主机网络和卷快照。 Rancher集成了Docker Machine和Swarm等本地Docker管理功能。
链接:http://rancher.com/
成本:免费
12. Nebula
Nebula是一个为Docker编排创建的新开源项目,旨在管理大规模集群。该工具通过缩小每个项目的组件来实现此目的,目标是充当物联网设备的Docker协调器以及CDN或边缘计算等分布式服务。 Nebula能够通过单个API调用同时更新全球数以万计的物联网设备。Nebula旨在帮助开发者像分布式Dockerized应用程序一样对待物联网设备。
链接:http://nebula.readthedocs.io/en/latest/
成本: 免费
13. Jenkins
Jenkins让开发和运营团队能够自动化应用程序的构建和测试周期。 因此,它已成为DevOps工具的代名词。Jenkins是一个独立的基于Java的程序,开箱即用,提供数百个插件,旨在与堆栈中的其他工具集成。该工具能够快速配置构建代理,部署组件并快速拆除。
成本: 免费
14. CircleCI
CircleCI承诺帮助软件团队专注于为客户提供价值,而不是维护CI基础架构。CircleCI使CI过程更快捷、简单,从而提高IT团队的工作效率。它可以快速集成,并允许在注册后立即构建和部署。通过SSH手动调试可同时动态缩放容器数量。
链接:https://circleci.com/
成本:第一个容器是免费的; 开源项目可在额外享用3个免费名额; 其余每月50美元(每个容器)
15. Travis CI
作为一个免费的开源CI项目,Travis CI通过自动构建和测试代码更改来提高开发过程效率。然后,软件即服务(Saas)平台能够提供有关代码更改成功的即时反馈。Travis CI还可通过管理部署和通知来自动化开发过程的其他部分。
链接: https://travis-ci.org/
成本: 免费
16. CodeShip
CodeShip是一个完全可定制的CI平台,通过与已建立的Docker工作流程一起提供本地支持。该平台致力于提高速度和安全性,并通过自动化测试和部署任务来完成工作,使用户可以完全控制构建环境。 此外,它也为许多云平台和编排工具提供支持。
链接: https://codeship.com/
成本:
Basic:免费提供100个构建/月,定价每月49美元起
Pro:起价为每月75美元
17. GitLab CI
GitLab结合了CI、CD和代码审查功能以处理整个应用程序生命周期。 它与Docker Engine上的GitLab runner一起使用,以实现自动化测试和应用程序构建。其他功能包括活动流、IDE、问题跟踪和存储库管理。GitLab CI还有内置的容器注册表来扫描和存储Docker库。
链接: https://about.gitlab.com/features/gitlab-ci-cd/
成本:
社区版:免费,无限制用户
Enterprise Edition Starter:3.25美元/用户/月
Enterprise Edition Premium:16.59美元/用户/月
18. Shippable
Shippable是一个面向开发人员的SaaS平台,可显著减少构建、测试和部署代码到生产所需的时间。Shippable旨在成为一站式自动化平台,通过提供完整的工作流程实现DevOps并优化创新。简单的即插即用界面意味着Shippable可以轻松地与许多应用程序架构和技术堆栈集成。
成本:
免费版:c4.large节点,无限制构建,1个并发作业
25/75/150美元/月:c4 large / xlarge / 2xlarge节点,每个一个并发作业
企业支持附加组件:每月500美元起
19. CodeFresh
CodeFresh提供了一个完整的工具链,开发人员可以使用该工具链创建和自动化交付管道。这些Docker原生CI / CD管道构建于Kubernetes之上,可通过缓存提供快速有效的资源管理。CodeFresh将企业注册表与Kubernetes的无缝连接和部署相结合。
链接: https://codefresh.io/
成本:
免费(仅限公共 repos)
Basic:每月99美元(公共和私人repos)
Pro:每月299美元,带SSH的专用节点
20. Buddy
Buddy可立即构建、测试和部署应用程序,是一个CI/CD和用户反馈平台,具有友好的用户界面,可使持续部署更高效,支持所有主流语言和框架,包括Angular,Ruby,Python,PHP / Laravel,Node.js和.NET Core。
链接: https://buddy.works/
成本:
Freelancer:每月49美元
Team:每月99美元
Software House:每月199美元
Mega:每月299美元
21. Drone
作为开源CI和部署即服务平台,Drone基于使用Go和Docker的容器技术构建。该平台无需安装,配置或服务器维护,并且可与BitBucket,Heroku,GitHub等无缝集成,以使用Docker容器自动执行代码构建,测试和部署。
链接: https://drone.io/
成本:
Nano: 每月125美元
Micro: 每月250美元
Mega: 每月500美元
22. Wercker
Docker原生CI和CD自动化平台,旨在帮助软件开发人员构建部署应用程序和复杂微服务架构。Wercker与Kubernetes本地集成,可自动完成部署工作流程,因此用户可专注构建应用程序。
链接: http://www.wercker.com/
成本:
社区版本: 免费;
虚拟专用版本: 每月350美元起
23. Sumo Logic
Sumo Logic是一种云原生日志审查工具,可提供高级分析、可视化和告警功能。监控告警解决方案提供实时安全性和操作信息,并允许诊断和排除所有应用程序和基础架构问题。机器学习分析意味着在威胁和异常成为问题并影响最终用户之前可快速发现和预测。
链接:https://www.sumologic.com/
成本:
免费:最高500MB /天
Professional:日志和指标:每月90美元,1GB /天
Enterprise:日志和指标:每月150美元,1GB /天
24. Prometheus
Prometheus由SoundCloud开发,是一个开源系统监控和警报工具包,结合了监控的许多方面,例如度量生成和收集,结果可视化以及异常发生时警报等功能。Prometheus擅长记录数字时间序列,并补充以机器为中心的监控以及高度动态的面向服务架构。
链接: https://prometheus.io/
成本: 免费
25. Sysdig
Sysdig开源版本是所有Sysdig产品的核心技术。 开源工具旨在提供单个主机的详细故障排除,并提供基于命令行的界面。
链接:https://www.sysdig.org/
成本:
开源:免费
Basic:每月20美元
ProCloud:每月30美元
Pro软件:暂不确定
26. Sysdig Monitor
Sysdig Monitor(正式名称为Sysdig Cloud)是Sysdig的商业解决方案,用于生成和分析系统级信息和实时数据。作为Linux系统的故障排除工具,它提供了容器可视性,使其在Docker环境中非常有用。
链接:https://sysdig.com/product/how-it-works/
成本:云和软件版本灵活定价
27. Datadog
Datadog是一个基于SaaS的数据分析平台,适用于大规模云环境,可从服务器,数据库和应用程序生成和收集指标或者数据事件。全栈监控服务为Docker,Kubernetes和Mesos提供支持。
链接:https://www.datadoghq.com/
成本:
免费:最多5台主机
Pro:15美元/主机/月
Enterprise:23美元/主机/月
28. New Relic
New Relic是一种纯粹的基于SaaS的性能管理解决方案,允许开发人员实时诊断和修复应用程序性能问题。其应用程序性能监视(APM)功能提供即时可见性,其基础结构中的Linux代理程序自动收集在已检测主机上运行的Docker容器指标。
链接:https://newrelic.com/
成本:
自托管环境:每月149美元; Essentials:每月75美元
基于云的选项:取决于程序的实例大小,运行时和数量
29. cAdvisor
Google的cAdvisor(Container Advisor)是一种监控解决方案,可分析Docker中运行容器的所有性能特征和资源使用情况。该工具生成并收集容器指标,例如网络统计信息,资源隔离参数以及资源使用的完整历史记录。
链接:https://github.com/google/cadvisor
成本:免费
30. Logspout
Logspout可帮助管理在Docker容器中运行的程序生成日志。它将容器应用程序日志路由到单个位置(例如,通过HTTP可用于JSON对象或流式端点)。Logspout还有一个可扩展的模块系统。
链接:https://github.com/gliderlabs/logspout
成本:免费
31. Fluentd
Fluentd作为一个开源数据收集器,可用于统一记录所有容器日志。 内含500多个插件,Fluentd可连接许多数据源和数据输出以收集事件。
链接:https://www.fluentd.org/
成本:免费
32. Logstash
作为弹性堆栈的一部分,Logstash可与Beats,Elasticsearch和Kibana一起良好运行。它是一个开源服务器端处理管道,用于传输和处理日志、事件或其他数据。
链接: https://www.elastic.co/products/logstash
成本: 免费
33. syslog-ng
syslog-ng可从各种源收集日志,并在将它们路由到不同目的地之前近乎实时地处理它们。
链接:https://syslog-ng.org/
成本:免费(可根据要求提供syslog-ng Premium Edition的定价)
安全
34. Clair
Clair是一个开源项目,旨在识别和分析Docker和appc应用程序容器中的漏洞。 Clair定期从定制和配置的源组中提取容器漏洞元数据,以识别容器映像威胁,包括上游威胁。
链接: https://coreos.com/clair/docs/latest/
成本: 免费
35. Aqua Security
Aqua Security可在任何平台上运行,通过提供全栈安全性来保护基于容器的应用程序。Aqua Security是一个专用平台,可从开发伊始严格控制容器环境和流程。它是一个全面的工具,提供全面可见性和管理。
链接: https://www.aquasec.com/
成本:定价包括所选软件成本和必要的虚拟机等基础架构成本的组合
36. Twistlock
Twistlock Security Suite旨在解决基于容器的应用程序安全问题。 它是一种端到端安全解决方案,通过监控Docker容器工作方式来检测漏洞。Twistlock可加强容器映像,并在应用程序的生命周期内实施安全策略。
链接:https://www.twistlock.com/
成本:定价包括软件和基础架构成本
37. Docker Bench for Security
Docker Bench for Security是一个预构建的打包容器,可以在任何Docker主机上运行。它是一组Bash shell脚本,应该以root用户身份运行。
链接: https://hub.docker.com/r/docker/docker-bench-security/
成本: 免费
38. Docker Notary
Notary是一个开源Docker项目,为数据集合提供安全性,运行服务以发布和管理任意内容。对已发布的集合进行数字签名,并允许用户验证内容的完整性和来源。
链接: https://github.com/docker/notary
成本: 免费
39. Convoy
Rancher创建的Docker卷插件,用于管理持久性容器卷。Convoy是开源Docker卷驱动程序,可在任何地方对Docker卷进行快照、备份和恢复。在AWS上创建Docker卷,受Elastic Block Store的所有功能和性能支持。此外,可获取现有EBS卷并使用其生成附加到Docker容器的卷。
链接: https://github.com/rancher/convoy
成本: 免费
40. Portworx
Portworx是一种用于持久、共享和复制卷的分散式存储解决方案,可以大规模自动化数据服务的部署和运营。
链接: https://portworx.com/
成本: 免费
41. Blockbridge
Blockbridge Volume Plugin为容器应用程序提供高性能存储,具有高级安全性,移动性,备份和还原功能。通过Docker 1.13+的“托管Docker插件”,Docker本身可以完成安装和生命周期管理。
链接: http://www.blockbridge.com/
成本: 免费
网络
42. flannel
flannel是专为Kubernetes设计的一种通过在集群多个节点间使用第3层IPv4网络来配置安全网络结构的简单方法。它不控制容器与主机平台联网方式的影响,只控制如何在主机之间传输流量。
链接: https://coreos.com/flannel/docs/latest/
成本: 免费
43. Weaveworks
Weaveworks为开发人员提供了一种连接、观察和控制Docker容器的高效方法。它创建了一个灵活的虚拟网络基础架构,可连接跨多个主机部署的容器。Weaveworks扩展了容器协调器(如Kubernetes和Docker Swarm)的效率,简化了生产中容器的管理。
链接:https://www.weave.works/
成本:
标准:每个节点每月30美元或每年300美元
企业:每个节点每月150美元或每年1500美元
44. Project Calico
作为一个高度可扩展的开源项目,Calico为虚拟网络提供了第3层方法,可以支持无数计算主机上的大量虚拟机集群。该工具的简化网络模型设计支持为每个工作负载配置细粒度连接策略,并允许集中管理SDN。
链接: https://www.projectcalico.org/getting-started/docker/
成本: 免费
45. Consul
Consul是一种易于使用,基于开放标准的服务发现方法,可在FreeBSD,Linux,Mac OS X,Solaris和Windows上运行。Consul具有多数据中心感知功能,可为多个区域提供支持,无需复杂配置。 主要功能包括:服务发现,健康检查和键/值存储等。
链接: https://www.consul.io/
成本: 免费
46. Etcd
etcd由CoreOS创建,是一个高度可用的键值存储,专为共享配置和服务发现而设计。该工具提供了一种在一组机器上存储数据的可靠方法。它专为运行CoreOS集群而构建,但etcd也适用于其他操作系统,包括BSD,Linux和OS X.
链接: https://coreos.com/etcd/
成本: 免费
47. Proxy
Factorish创建了一个简单易用的轻量级(\u0026lt;30mb)容器代理。该工具基于alpine/gliderlabs,nginx作为HTTP负载均衡器运行。
链接: https://hub.docker.com/r/factorish/proxy/
成本: 免费
构建
48. Packer
Packer是一个Hashicorp工具,用于构建机器映像(包括Docker),并与Ansible,Chef和Puppet等配置管理工具集成。它是一个轻量级工具,可以从单一源配置在每个主要操作系统上运行。
链接: https://www.packer.io/docs/builders/docker.html
成本: 免费
49. Whales
使用Whales自动将应用程序停靠。 唯一需要的是在主机上安装并运行Docker。然后,Whales通过输出必要的文件来运行Docker的应用程序。
成本: 免费
50. Gradle
Gradle插件使所有构建脚本都可与Docker守护程序进行通信。 每个任务都委托给Docker客户端,然后通过HTTP连接到Docker的远程API,大多数配置参数是可选的。
成本: 免费
51. Portainer
Portainer是Docker环境的开源轻量级管理用户界面。 Portainer在Docker API之上工作,并提供Docker的详细概述。 功能包括管理容器,图像,网络和卷的功能。
链接:https://portainer.io/
成本:免费
参考链接:https://dzone.com/articles/50-useful-docker-tools