设为首页 收藏本站
查看: 1391|回复: 0

[经验分享] 让Docker功能更强大的10个开源工具

[复制链接]

尚未签到

发表于 2015-4-17 09:52:50 | 显示全部楼层 |阅读模式
让Docker功能更强大的10个开源工具
  更好的管理、Web前端程序、更深入地了解容器应用程序,Docker生态系统正在迅速发展,这还得归功于其充满活力的开源社区。
DSC0000.jpg
  软件项目的成功常常根据其催生的生态系统来衡量。围绕或基于核心技术构建的项目增添了功能和易用性,它们常常日臻完善。Docker就是一个典例,这个软件容器化系统让IT部门可以专注于应用程序、而不是虚拟机,作为生产的标准单位。
  Docker一向备受第一方和第三方开发人员的关注,而众多项目扩展、补充或改进Docker,却没有成为Docker的一部分。下面是如今正在开发中的10个最知名的项目,从长远来看,有些项目有机会成为Docker的一部分。
  Kubernetes
DSC0001.jpg
  谈论第三方Docker项目自然少不了提到Kubernetes,这是谷歌开发的一款开源Docker管理工具,用于跨计算机集群部署容器。除了通过让集群上部署的容器保持均衡,从而有助于管理Docker节点的工作负载外,Kubernetes还提供了让容器可以彼此联系的方法,不需要开启网络端口或执行其他操作。这些功能,加上Kubernetes用Go编写的事实(Docker也用这种语言编写),强烈表明它在未来某个时间会并入到Docker。
  项目:Kubernetes
  GitHub:https://github.com/GoogleCloudPlatform/kubernetes
  Dockersh
DSC0002.jpg
  如果你想让用户可以访问外壳(shell),可是对由此带来的安全后果有顾虑,Dockersh提供了一种Docker化的方式,为外壳会话提供高于平均水平的安全性。
  Dockersh让多个用户可以连接到某个主机,每个用户都运行自行选择的单独的Docker容器所生成的外壳。用户可以查看其主目录,并对主目录进行永久性更改,但他们只能看到自己的进程,而且只能使用自己的专用网络堆栈。开发者担心Dockersh里面的潜在安全漏洞,不建议它用于不受限制的公众访问,至少在Docker以这种方式加以改进之前不建议这么做。而光这个概念就让这个项目值得关注。
  项目:Dockersh
  GitHub:https://github.com/Yelp/dockersh
  DockerUI
DSC0003.jpg
  虽然大多数开发人员和管理人员通过命令行来创建及运行Docker容器,但Docker的Remote API让他们可以通过充分利用REST(代表性状态传输协议)的API,运行相同的命令。这时,DockerUI有了用武之地。这个Web前端程序让你可以处理通常通过Web浏览器的命令行来管理的许多任务。某一个主机上的所有容器都可以通过仅仅一条连接来处理,该项目几乎没有任何依赖关系。不过,它仍在大力开发之中,但是它采用麻省理工学院(MIT)许可证,所以可以免费地重复使用。此外,它不包含任何内置的身份验证或安全机制,所以务必将任何公之于众的DockerUI连接放在用密码来保护的系统后面。
  项目:DockerUI
  GitHub:https://github.com/crosbymichael/dockerui
  Shipyard
DSC0004.jpg
  Shipyard使用Citadel集群管理工具包,简化对横跨多个主机的Docker容器集群进行管理。通过Web用户界面,你可以大致浏览相关信息,比如你的容器在使用多少处理器和内存资源、在运行哪些容器,还可以检查所有集群上的事件日志。包含完整的API和命令行接口(CLI),而专门构建的Docker镜像(又叫扩展镜像)可用来扩展Shipyard的功能。这后一个想法仍在开发之路,不过可以通过Interlock项目,获得负载均衡/路由镜像。
  项目:Shipyard
  GitHub:https://github.com/shipyard/shipyard
  Kitematic
DSC0005.jpg
  许多项目旨在让Docker成为基于OS X的编程员们手里一款实用的桌面环境开发工具,而Kitematic正是其中之一。它简化了下载Docker镜像、启动这些镜像以及管理它们的过程,让这项任务变得如同在VMware Workstation等应用程序中使用虚拟机一样简单。同一类别的其他项目包括:DVM、Docker OS X和OS X Installer,不过Kitematic很可能是这批项目中最完善的。唯一的重大缺点是,卸载过程有点错综复杂。
  项目:Kitematic
  GitHub:https://github.com/kitematic/kitematic
  Logspout
DSC0006.jpg
  Docker还没有提供一种方法来管理在Docker容器里面运行的程序所生成的日志。Logspout是一个Docker容器,大小仅14MB,使用BusyBox作为其核心,它可以将来自容器应用程序的日志发送到某一个中央位置,比如单一JSON对象或者通过HTTP API可获得的流式端点。就挖掘的信息方面而言,Logspout目前功能有限,因为它只能实现容器的标准输出(stdout)和标准错误输出(stderr),不过已计划一旦Docker提供相关钩子(hook),就允许更全面的日志功能。将来应密切关注这个项目。
  项目:Logspout
  GitHub:https://github.com/progrium/logspout
  Autodock
DSC0007.jpg
  Docker自动化工具可以说是个大众化产品。毕竟,更容易自动化不是Docker的全部意义吗?但Autodock却凭借几个不同之处脱颖而出。它被设计成可在使用Salt和SaltStack作为主要自动化技术的环境中运行,它还经过了专门的设计,通过确定某一个Docker集群中哪些服务器拥有的负载最小,以便尽快启用新容器。一个可能存在的缺点是,让它发挥功效需要好多基本组件(SaltStack、Golang、Etcd和Python)。
  项目:Autodock
  GitHub:https://github.com/cholcombe973/autodock
  DIND(Docker-in-Docker)
DSC0008.jpg
  Docker-in-Docker正如其名:这是让你可以在Docker容器里面运行Docker的一种方式,在Docker 6.0中实现的方式是,为容器添加特权模式。
  抛开噱头和笑话不说,如果你想把Docker本身作为一项服务提供给Docker容器,这个工具很有用――比如说,如果你想试用某种自动化工具或方法。请注意,Docker的“内部”实例是最新的Docker二进制代码,构建时可以从docker.io来获取。另外牢记一点:以这种方式运行的实例是在特权模式下运行的;正因为如此,你将它们暴露在非Docker化的外界面前时,需要采取更多的防范措施。
  项目:Docker-in-Docker
  GitHub:https://github.com/jpetazzo/dind
  Heroku-Docker
DSC0009.jpg
  Heroku曾是一种支持多种语言的出色的平台即服务(PaaS),如今在一定程度上仍然是这样,但Docker让我们几乎可以在任何地方从事类似PaaS的工作。为此,对那些想方设法将现有的Heroku项目迁移到Docker,又无须从头开始重新构建的人来说,这是个不二的选择。这个简单的小项目拿来现有的Heroku应用程序后,可以从命令行将其转换成Docker镜像,执行整个操作只需要几个命令就行。
  项目:Heroku-Docker
  GitHub:https://github.com/ddollar/heroku-docker
  Docker Node Tester
DSC00010.jpg
  当你使用某一项最热门的新IT技术作为另一项热门的新IT技术的测试机制时,会使用什么?显然是Docker Node Tester。DNT提供了一个测试平台,Node.js项目针对Docker容器中多个版本的Node.js运行,然后以表格方式输出结果。你还可以针对最前沿版本的Node进行测试,无论是什么版本。请注意,不同版本的Node都是从源代码构建的,这意味着你最后会得到Node整个源代码树的本地副本;确保你有足够的空间来存储它。
  项目:Docker Node Tester
  GitHub:https://github.com/rvagg/dnt
  英文:http://www.itworld.com/article/2841314/10-open-source-tools-to-make-docker-even-more-powerful.htm

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58020-1-1.html 上篇帖子: 如何使不同主机上的docker容器互相通信 下篇帖子: docker网络配置方法总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表