阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Kitematic和DockerCLI如何无缝对接

102次阅读
没有评论

共计 1672 个字符,预计需要花费 5 分钟才能阅读完成。

介绍

Kitematic 是一个 Docker GUI 工具,它可以在 Mac 和 Windows 上更快速、更简单的运行 Docker。Docker 官方表示,Kitematic 是其生态系统中成长起来的一个非常棒的项目。

Kitematic 简化了安装本地 Docker 环境并提供一个 GUI 来 pull、build 和 run 容器。如果你还没有试过,你可以下载 Kitematic 试用下。

Kitematic 的主要目标是与 DockerCLI 彼此协作并且提供两者之间无缝对接体验。例如,一个用户可能运行下面的命令在 Docker 客户端启动一个容器:docker run hello-world,并且在 Kitematic 观察结果,反之亦然。进一步说,我们的目标是与其他 Docker 工具一起开箱即用,如 Docker Compose。

举个例子,如果我们通过命令行删除一个容器,Kitematic 将立即反映这种变化:

Kitematic 和 DockerCLI 如何无缝对接

 

应用程序架构:React 和 Flux

Kitematic 完全用 JavaScript 编写的。在考虑不同的架构设计和框架之后,我们最终的架构灵感来自 Facebook 的 Flux。Kitematic 的总体架构如下图所示:

Kitematic 和 DockerCLI 如何无缝对接

Stores: 真实数据的来源并且需要逻辑来管理这些数据。

Components: 在 React 中执行,负责 stores 中数据的呈现和捕捉用户输入的数据。

Actions: Docker Remote API 中通过组件或事件之间的交互产生的中间对象。Actions 将被 stores 处理并导致应用数据的改变。

Utils: 这不是一个标准 Flux 实现的一部分,但是通过 actions 与外部服务进行交互。例如,Kitematic 有一个 DockerUtil 对象与 Docker Engine Remote API 进行交互。

当一个容器通过客户端被删除,将会发生以下情况:

Docker Engine 产生 destroy event
这个事件反过来触发一个容器 destroyed action
Subscribing to container actions,ContainerStore,负责存储容器数据,从它内部的容器列表更新删除破坏掉的容器数据。
UI 组件负责列表容器,ContainerList 组件相应的重新呈现。

The Code:Propagating Docker Engine Events to Kitematic GUI

让我们深入不同部分的代码库来了解一下是怎么实现的,下文我们做了简化。

1.从 Docker Remote API Events 触发操作

使用 dockerode 库,监听 Docker Remote API 很简单。在这种情况下,如果一个事件接收到状态遭到破坏,就会创建一个动作通知相关 stores 更新其内部数据:

Kitematic 和 DockerCLI 如何无缝对接

 

2.更新 Container Store

ContainerStore 对象执行一个处理任何破坏掉的容器操作,更新其内部数据,通知所有监听组件重新呈现。

Kitematic 和 DockerCLI 如何无缝对接

 

3.在 ContainerList React Component 触发更新

Kitematic 中的高级 Containers React 组件监听 ContainerStore 发出的更新,在这种情况下,当 ContainerStore 发出更新,负责呈现容器的简单列表的 ContainerList 也随着更新的容器数据呈现。

Kitematic 和 DockerCLI 如何无缝对接

ContainerList.react.js

Kitematic 和 DockerCLI 如何无缝对接

 

总结

回顾一下,这篇文章解释了 Kitematic 如何通过 DockerCLI 或任何集成 Docker Engine. 的工具,利用 Docker Remote API、React 和 Flux 来实现实时更新。记得现在就下载 Kitematic 试用并反馈给我们。(本文编译自 Docker 博客)

如何在 Windows 上通过 Kitematic 使用 Docker  http://www.linuxidc.com/Linux/2015-09/122601.htm

Kitematic 的详细介绍 :请点这里
Kitematic 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-10/124479.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计1672字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中