50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Dockly 创建者访谈:基于控制台的 Docker 容器管理 UI

  • 2018-06-14
  • 本文字数:1478 字

    阅读完需:约 5 分钟

Liran Tal 发现 Docker CLI 很不方便,于是就构建了一个开源替代方案 Dockly 。它可以帮助你从命令行管理和监控所有的 Docker 容器。为了更好地了解 Dockly 如何改进了与 Docker 的协同,InfoQ 采访了 Dockly 开发者 Liran Tal,了解他构建 Dockly 及创建终端应用程序的经验。

一个典型的 Docker CLI 工作流需要你列出系统上的容器,指出你希望使用的容器的名称或 ID,然后发出一个后续命令启动容器。使用 Dockly 就不需要列出系统上当前存在的所有容器。它让你可以从一个窗口中启动、停止、删除和查看那些容器。

Dockly 是一个使用 Node.js 编写的开源软件,用户可以通过 NPM 安装,并在 Linux、iOS 和 Windows 上运行。

InfoQ:是什么促使你创建了 Dockly?

Liran Tal:几年前,当我开始加大容器的使用力度时,我发现,即使我喜欢使用终端,使用 Docker CLI 工具也让我觉得繁琐。由于名字长或终端窗口小,列出的容器无法很好地显示。要在特定的容器或镜像上运行命令需要首先查询容器的名称或 ID,然后发出另一条命令,诸如此类。

那时,我意识到,我需要一种更好的方法来和容器交互,但是,不需要把上下文如多任务切换到浏览器来使用 Web UI。

InfoQ:在创建 Dockly 时您遇到了什么挑战?

Tal:不同的部件和信息的布局及它们在屏幕上的位置和实际情况非常有挑战性,我重排了许多次。

另外一项挑战是和不同 Node.js 引擎的兼容性。由于 Dockly 可能被 Ops 团队采用,他们会依赖 OS 提供的渠道进行包管理,那么当他们试图在 Node.js 4 上运行 Dockly 时就会碰壁。你需要能够运行它的最新版本 Node.js,如版本 8 LTS。

InfoQ:您接下来希望添加什么特性?

Tal:我一直在想,容器列表的预输入、交互式自动补全会非常有用,因为对于一个长列表或容器名,你可能需要滚动查看才能找到想要的容器。

另外,值得一提的是, Matan Avneri 近日向这个项目贡献了一些很棒的增强,如可以查看服务,如果你工作在一个 Docker Swarm 集群环境中,那真得非常有用。

InfoQ:这个工具目前还有什么局限性或不足?

Tal:对于一些高级的场景,进一步强化 Swarm 集群管理或者是服务当前状态的可见性会很有趣。可以非常容易地了解服务的健康状况和状态会非常有用。

从特性的角度来说,这未必就是局限,但那确实总是让我感到不快,就是目前没有测试套件。虽然单元测试和集成测试很容易实现,但整个屏幕的交互流比较复杂。考虑一下,如果没有终端交互,端到端测试(E2E)会怎样。我相信,这本身就是一个绝妙的想法,可以作为一个全新的开源项目。

InfoQ:如果有人想要为 Dockly 做贡献,那么从哪里开始比较好?

Tal:我们有几个不错的问题打开着,不过,我已经看过并合并了用户就完全不同的主题所做的贡献,如增加更多的命令,在用户界面内控制容器,或者重构部分代码库,更好地重用代码组件和遍及终端 UI 的小部件。

InfoQ:您近日在 JSHeroes 谈了终端开发,对于那些希望自己创建控制台工具的,您有什么建议?

Tal:对于任何构建命令行工具的人,我的主要建议是要特别注意开发者体验,针对生产力和友好性进行优化。人们很容易忘记,并不是所有的终端用户都足够先进。另一方面,如果你将一个命令行工具视为一款产品,那么你就必须考虑良好的默认值、优秀的用户体验,而用户会评价你的 App 的有效性。

其中有些概念和 Web 开发非常类似。例如,如果工具正忙于处理,就会以旋转指针或进度条的形式向用户说明。或者,如果发生了异常,就会向用户发送一条简单易懂且合理的消息。

要了解有关 Dockly 的更多信息,请查看该项目的 GitHub 库。

查看英文原文: Q&A with the Creator of Dockly, a Console-Based UI for Managing Docker Containers

2018-06-14 11:212049
用户头像

发布了 1008 篇内容, 共 441.2 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

基于深度学习的YOLO框架的人脸表情检测识别系统【附完整源码+数据集】

程序员Geek

人工智能、

Playwright 自动化测试 | 测试框架集成​​Page Object 模式

测试人

软件测试

mdraid、mdadm 与 Linux 软件 RAID 终极指南

Sergey Platonov

raid storage xiRAID MDraid

速卖通商品详情API详解

tbapi

速卖通API 速卖通商品详情接口 速卖通数据采集

【2/100】英伟达没做到的事,国产的 HAMi 做到了!

霓漠Nimbus

nvidia k8s MLOps GPU容器虚拟化 AI Infra

利用Amazon Bedrock生成AI增强设备维护建议

qife122

设备维护 Amazon Bedrock

欢乐互娱:StarRocks 助力游戏数据平台实现极速分析与高效运营

镜舟科技

存算分离架构 StarRocks 湖仓一体 实时分析 Bitmap索引

告别堡垒机时代!某电力公司如何用CloudQuery解决2000+数据库的安全困局?

BinTools图尔兹

MySQL有哪些“饮鸩止渴”提高性能的方法?

量贩潮汐·WholesaleTide

MySQL 数据库

【1/100】好的软件通常自带最佳实践 - NVIDIA GPU Operator 篇

霓漠Nimbus

gpu nvidia MLOps K8s Operator AI Infra

Go 原理之 GMP 并发调度模型

秃头小帅oi

基于vLLM与AWS Trainium的冷启动推荐优化

qife122

推荐系统 vLLM

PandasAI连接LLM进行智能数据分析

不在线第一只蜗牛

数据分析

豆包编程邀你来玩|一起来听「北大同学的 AI 玩学指南」

字节跳动终端技术

AI编程 豆包

类似CrossOver的软件哪个最好用?苹果电脑除了虚拟机用什么软件能独立运行游戏?

凡凡不烦

虚拟机 Mac软件 CrossOver Mac下载 如何在Mac上运行win游戏

“子弹弹夹”装弹和出弹的抽象原理实战:掌握栈的原理与实战

电子尖叫食人鱼

JavaScript 数据结构 算法

Coze开源版?别吹了!

王磊

分享一个 MySQL binlog 分析小工具

不在线第一只蜗牛

MySQL 数据库

阿里云可观测 2025 年 6 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测

Java注解底层竟然是个Map?

量贩潮汐·WholesaleTide

Java

解析vLLM架构及源码系列-整体架构

Jason黄

vLLM vLLM优化 vLLM源码

GPUStack v0.7重磅更新:macOS与Windows安装包、昇腾MindIE多机推理、模型使用计量与寒武纪MLU支持

GPUStack

人工智能 AI 大模型 LLM

速卖通商品详情API响应数据python解析

tbapi

速卖通API 速卖通商品详情接口 速卖通数据采集

Lakehouse: Unifying DW & Advanced Analytics in Open Platforms

数新网络官方账号

7 月 29 日晚,一场发布会,重新定义什么叫“数据在说话”

TDengine

tdengine 时序数据库

Redis 部署模式详解

电子尖叫食人鱼

redis

论一个流程清晰,管理有序,人员配合的企业对系统上线的帮助到底有多大!

积木链小链

数字化转型 智能制造

天润融通助力Wagas用Agent接管80%咨询,多语种服务全球客户

天润融通

AWS MemoryDB 可观测最佳实践

观测云

AWS

从一起知名线上故障,谈配置灰度发布的重要性

阿里巴巴云原生

阿里云 云原生 nacos

北大张牧涵团队依托昇腾突破推理效率瓶颈 大模型推理百万tokens 成本仅 1 元

极客天地

Dockly创建者访谈:基于控制台的Docker容器管理UI_DevOps & 平台工程_Matt Campbell_InfoQ精选文章