AWS开源容器开发客户端命令行工具Finch

AWS发布新的容器命令行客户端开源工具Finch,Finch可用于构建、运行和发布Linux容器,其提供原生macOS客户端安装程序,以及一组标准开源组件,包括Lima、nerdctl、containerd和BuildKit,用户可以使用Finch在本地端创建和执行容器,并发布OCI容器镜像文件。

虽然目前要在非Linux主机上构建和执行Linux容器,已有现有的商业产品和一系列开源工具可用,但是如要使用开源命令行工具,用户仍需要花时间组装测试,因此AWS希望通过创建Finch来简化这项复杂工作,让用户能更专注在容器操作上而非构建工具。

Finch仍是只拥有基本功能的初期项目,目前仅支持macOS,随后会扩展到Windows和Linux。Finch直接相依于Lima和nerdctl,并且一起打包成macOS安装程序。Lima是在2022年9月才被CNCF接受的沙盒项目,为一个在macOS上以containerd运行Linux虚拟机,可以看作是非正式的Mac用containerd,而nerdctl则是一个用于containerd且兼容于Docker的命令行工具。

Finch的macOS原生客户端,能够在nerdctl和由Lima管理的虚拟机间,扮演桥梁角色,所有可调的部分都被抽象成简单易用的Finch客户端,Finch会管理所有必要的开源组件和相依项目,用户不需要管理相依项目更新和进行安全修补。

同时,Finch也直接和nerdctl集成,提供用户熟悉的命令和选项,就像是在Linux原生操作一样,可以从注册表拉取镜像文件,在本地端执行容器,并且使用Dockerfile构建镜像文件,同时Finch还够进行模拟,在amd64或是arm64架构中构建和执行镜像文件,这代表用户可以选择在使用Apple Silicon或是英特尔芯片的Mac上执行构建。

AWS提到,核心Finch客户端将会是一个精选的发布版本,完全开源且供应商中立,并供下游用户自订,根据特定使用案例创建扩展和增加功能。AWS会根据客户需要加入自家云计算服务集成,但这将会以扩展的方式加入可选功能,不会影响Finch的开源核心和上游相依项目,扩展功能会拥有自己项目,以及独立的发布周期。

用户只要完成Finch安装,就可以开始构建和执行容器,目前Finch没有图形用户接口,仅有一个简单的命令行客户端,没有集成额外的集群管理和容器调度工具。

整体来说,Finch规划了一个通用开源组件堆栈,这些组件经过构建和测试确定能够协同运行,AWS提到,他们的目标是要最小化和简化容器的构建、运行、推送和拉取体验,使用户可以专注于核心工作流程。随着项目的发展,AWS还将让虚拟组件的状态更加透明,并且占用较小的容量,启动时间更快,也更具可扩展性,用户可以自由地依需求自定义Finch。