基于Docker API的工具综述

简介: 本文讲的是基于Docker API的工具综述,【编者的话】考虑到过去三年Docker取得的骄人成绩以及远程API的成熟,毫无疑问,Docker会成为开发者的首选平台。随着Docker的发展壮大,开发者也共享了很多围绕Docker的开源项目,本文中将讨论这些项目是如何使用Docker API的。
本文讲的是基于Docker API的工具综述 【编者的话】考虑到过去三年Docker取得的骄人成绩以及远程API的成熟,毫无疑问,Docker会成为开发者的首选平台。随着Docker的发展壮大,开发者也共享了很多围绕Docker的开源项目,本文中将讨论这些项目是如何使用Docker API的。

1.jpg

Docker是在虚拟容器中简易部署应用最前沿技术。之前我们已经知道Docker可以减少开发维护复杂度,使得正在成长中的架构得以实践。这种架构使得整个应用以及底层操作系统以轻量级容器方式创建和部署,而不是依靠增量式的更改。

考虑到过去三年Docker取得的骄人成绩以及远程API的成熟,毫无疑问,Docker会成为开发者的首选平台。

随着Docker的发展壮大,开发者也共享了很多围绕Docker的开源项目,本文中将讨论这些项目是如何使用Docker API的。

Dogfooding

DokcerAPI最大的用户就是Docker本身,Dokcer内置了很多整合与编排容器配置的工具。Dockercompose面向多容器应用部署,而Docker Swarm则负责Docker容器集群创建。

Docker自身在这一领域做的很好,但是仍然对其它Docker编排技术持开放态度。编排领域涉及面很广泛,包括调度、集群,服务发现以及其它一些任务。考虑到有效性,透明性,以及依赖性,一般不希望几个进程运行在同一个容器内;实际使用中,每个容器只负责处理定义清楚的服务。因此一个完整的应用一般由多个Docker容器构成,这也是基于Docker的解决方案非常丰富的原因。

调度(Scheduling)

Docker容器调度也是容器编排中重要的一环,这里所说的调度是指容器如何在各个主机之间运行的规则。例如,一个调度策略可能会牵涉到运行在同一个主机中的不同容器,而其功能是互补的。因为有了调度策略,可以从一个应用中抽象出两个集群行为的容器。

除了DockerSwarm的调度功能,CoreOS的Fleet和Marathon都是Docker调度开源实现。

如想深入了解容器架构,可以深入阅读 API-Driven DevOps: Spotlight on Docker

集群管理(Cluster Management)

集群意味着将很多主机内的众多Docker容器联系起来,使它们表现为一个统一调度的系统。

对应于Docker Swarm的开源项目包括 Google的Kubernetes, 通过Docker容器的pods来管理集群,其它的还包括Shipyard,CoreOS的Fleet和Marathon。

像Spotify这种公司开发并开源了自己的Docker管理系统,而这正是每个基于Docker系统必需的。

服务发现(Service Discovery)

服务发现是在一个多主机、集群环境的网络中,如何发现所需服务的IP地址,像GliderLabs这样的公司利用Docker的远程API侦听事件,创建基于容器的软件应用。Registrator,一家由Weave支持的开源项目,可以通过监控新建Docker容器,将它们在目录服务Consul中注册,提供发现服务。

网络(Networking)

为了链接构成服务的容器,Docker也提供一些网络功能。默认地virtual bridge网络被激活,同时也可以用不同的配置。提供商提供了适用于其他使用场景的网络配置。

Weave使用一种称为imicro-routers的虚拟网络跨主机连接容器,使得网络配置简化,动态添加节点,通讯加密。Weave还提供一个叫Weave Scope的网络监控功能。

Flannel是CoreOS提出的overley网络解决方案,使用etcd集群来存储网络配置。

Calico项目另外一个基于‘Layer3’网络的开源项目,这不是一个overlay网络,意味着OSI模型三层以上都不会封装包,相对于其他方案会大大提高性能。

存储(Storage)

Docker在数据库领域并不太成熟,这是因为按照定义数据库是经常变化的,因此运行数据库的容器不能简单被重新部署而不比较数据一致性。针对这一问题Docker内置基于数据卷和数据卷容器的解决方案。数据卷在容器被删除时,数据仍然是持久化的。数据卷容器可以在多个容器之间共享数据时候使用。

数据卷可以被备份和恢复;像ClusterHQ的Flocker产品,就是一个开源的数据卷管理器,而且为了支持基于容器的数据库,提供数据迁移功能。

持续集成(Continuous Integration)

为了更好管理Docker容器创建,测试和部署的生命周期,有很多针对持续集成(CI)领域的工具。例如,CodeFresh可以监测Git库中变化,或者持续集成服务器中变化,从而触发创建和部署Docker容器,
CodeShip的Jet是面向Docker的CI平台,可以从任何Docker注册库中拉images,与DockerCompose整合,便于并发创建和部署基于容器的应用。

Drone是另外一个基于Docker的持续集成平台,它在创建过程中使用一个短暂生成的容器。

如需了解,可以阅读如下网址: Continuous Integration Tools to Spur API Development

Hosted Docker Registries

除了DockerHub之外,还有几家公司提供Docker注册库服务,例如Quay.io, Artifactory和Google的Container Registry。这些服务提供私有的容器注册库访问,提供高级库功能,第三方整合和极佳DevOps体验。

日志整合(Log Aggregation)

Logspout是GliderLabs的另外一个开源项目。当几个Docker容器共享一个主机时,Logspout将日志路由并汇总到类似PaperTrail的日志管理系统。另外,Filebeat可以对容器日志打上标签并发往logstash。

监控(Monitoring)

大量第三方的,由业界云监控大厂开发的,基于Docker的监控工具,一般都是用Docker静态API,并将结果显示在动态仪表盘上。
这些监控方案包括:

配置管理(Configuration Management)

Docker可以通过标签方式(labels)给图像、容器和进程(守护进程)添加客制化元数据。标签类似于key-value对,可以被用于标注配置信息,例如版本号和环境信息。

为了避免名字冲突,Docker鼓励在标签中使用命名空间,但是并不强制。 Docker Label Inspector 是GarethRushgrove(PuppetLabs的资深工程师 )开发的应用,可以根据发布指南或者指定JSON Schema检查发布的Docker映像。

安全审计Security Auditing

很多问题都围绕基于Docker应用的安全问题,尽管过去很多年已经补上了很多漏洞,但是开发商提供的Docker应用带来了更多安全问题。一个例子是Scalock,这是一款扫描容器发现安全问题的软件,并且控制对容器访问,监控容器运行状态使得不会破坏安全设置。

PaaS

越来越多的基于Docker软件,造成了整合性的困难,同时也是一个生态系统发展良好的预兆。很多公司瞄准了这一需求,将赌注压在端到端类PaaS的方案,用来创建、部署、编排和监控基于Docker的应用,从而将复杂性隐藏起来。

Openshift是RedHat的PaaS方案,构建于Docker和Kubernetes之上。Deis是EngineYard开发,由Heroku驱动的PaaS方案,构建于Docker和CoreOS之上,Paz是基于Docker、CoreOS、etcd和Fleet的开源项目,可以将容器应用运行于PaaS之上。

最后,Docker最近收购了Tutum(类似PaaS的套件,用于部署和管理Docker引擎),重新命名为Docker Cloud。

Full-blown OS

由于Docker发展太迅猛,已经有先行者开始使用容器做整个操作系统。Rancher的RancherOS是一个完全基于Docker的轻量级操作系统,它是专为运行基于容器应用的20MB大小的Linux发行版。
HypriotOS是在树莓派上使用的Docker实现,允许在SD卡上运行轻量级容器应用。

结论Conclusion

Docker的创生诞生了DevOps软件生态环境,随着Docker应用不断增加,看起来这个增长势头在未来会更加强劲。在下一篇文章中,我们将会深入DevOps其它领域,也就是持续集成和配置管理,未完待续……

原文链接:Tools Built on Top of The Docker API(翻译:杨峰)

原文发布时间为:2016-05-11
本文作者:hokingyang
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:基于Docker API的工具综述
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
3月前
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。
|
4月前
|
人工智能 安全 测试技术
Apifox对决Apipost:API管理工具的深度较量与未来前瞻
在快节奏的软件开发中,API管理工具的选择直接影响效率与协作。本文对比Apipost与Apifox,从界面设计、核心功能、AI能力、离线支持、团队协作、生态整合及性能表现等维度,深入解析两者差异,帮助团队找到更契合的开发利器。
|
5月前
|
运维 数据可视化 测试技术
从混乱到清晰:API开发追踪工具实用技巧与工具配置完整拆解
API开发追踪工具是提升团队协作效率、实现接口全流程管理的关键。它整合任务看板、文档同步、版本控制与多角色协作,助力前后端及第三方高效对接。本文详解其核心功能、选型建议与落地实践,助你打造透明、规范的API协作体系。
|
4月前
|
前端开发 测试技术 API
企业级API工具的选择:Apipost和Apifox哪个好
Apifox相比Apipost在企业级API协作方面表现更出色,其一体化平台设计有效提升团队协作效率,功能整合度高,支持标准化接口管理,更适合规模化团队和技术协作需求。
370 120
|
5月前
|
人工智能 NoSQL 测试技术
Apipost 与 Apifox:全栈工程师视角下的 API 工具抉择
本文对比了Apipost与Apifox两款API工具在AI能力、数据一致性管理、自动化测试、团队协作、协议支持、数据库支持及离线可用性等多个核心维度的表现。Apipost凭借AI智能化、数据自动同步、全面协议支持及离线功能等优势,在大型项目、高安全场景及多协议调试中表现更出色。而Apifox适合预算有限、小型团队及纯HTTP项目。
133 0
|
2月前
|
人工智能 API 开发工具
还在被复杂 API 调试工具折磨?这款开源神器救我出坑!
小华推荐开源API调试神器Yaak:离线优先、支持多协议、Git集成,告别Postman卡顿烦恼。界面清爽,一键导入,免费开源获8.5k星,10万+技术人已入坑!
249 7
|
3月前
|
关系型数据库 MySQL Linux
事项驱动的项目管理工具Dectask的Docker安装教程
Dectask是智能驱动的新一代项目协作工具,本人介绍其Docker安装教程。
124 2
|
3月前
|
人工智能 搜索推荐 API
API文档工具谁能胜出:Apifox与Apipost深度对比
Apifox与Apipost功能对比显示,Apifox在自定义域名、页面布局、SEO优化、跨域代理、数据分析、版本管理及权限控制等方面优势明显,更适合对API文档有高要求的企业级用户;而Apipost则侧重基础文档分享,适合轻量级使用场景。两者均集成AI能力,但Apifox应用更深入。
API文档工具谁能胜出:Apifox与Apipost深度对比
|
4月前
|
供应链 安全 数据挖掘
1688电商API接口:赋能电商全链路运营的数字化工具
在数字经济时代,1688电商API接口为企业提供商品管理、订单处理、支付集成、物流跟踪等全场景解决方案,助力企业实现数据互通、流程自动化,提升运营效率与业务增长。
1688电商API接口:赋能电商全链路运营的数字化工具
|
5月前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
481 11