AWS发布开源工具用于命令行容器管理

AWS 发布 Finch:开源的容器开发命令行工具

AWS 发布了 Finch,一个开源的、与云无关的命令行工具,用于构建、运行和发布 Linux 容器。Finch 集成了多个开源组件,包括 Lima、nerdctl、containerd 和 BuildKit。目前,Finch 是一个原生 macOS 客户端,支持所有 Mac CPU 架构。

Finch 的开发背景与目标

AWS 的首席工程师 Phil Estes 和高级开发者倡导者 Chris Short 表示,Finch 是他们对 macOS 上开源容器开发工具复杂性的回应,未来还将支持 Windows 和 Linux。Finch 的核心将始终由精选的开源、供应商中立的项目组成。

Finch 的主要功能与特点

Finch 专注于命令行客户端,帮助开发者在 Mac 上进行“内部循环”开发,包括构建、运行和推送/拉取 Linux 容器。它提供了一个签名的 .pkg 安装程序,方便企业将其集成到设备管理套件中(如 jamf)。

Finch 与其他工具的比较

一些用户质疑 Finch 与现有工具(如 Podman)的区别。AWS 的高级开发者倡导者 Nathan Peck 解释说,主要区别在于 Podman 使用 CRI-O,而 Finch 使用 containerd。AWS 选择 containerd 是因为其在规模操作中的表现,尤其是在 AWS Fargate 中运行大量任务时。

Finch 的技术实现与扩展计划

Finch 基于 nerdctl,因此大多数 nerdctl 命令和选项在 Finch 中同样适用。Finch 允许从注册表中拉取镜像、在本地运行容器以及使用 Dockerfile 构建镜像。通过模拟,Finch 可以构建和运行 amd64 或 arm64 架构的镜像。

未来,Finch 计划支持下游消费者创建自己的扩展和功能。AWS 特定的扩展将是可选的,以避免影响或分裂 Finch 依赖的开源核心或上游依赖项。扩展将维护在独立的项目中,具有不同的发布周期。

Finch 的安装与使用

安装后,Finch 虚拟环境需要通过 finch vm init 初始化,然后使用 finch vm start 启动。运行容器可以通过 run 命令实现,例如:

finch run --rm public.ecr.aws/finch/hello-finch

run 命令会在镜像不存在时拉取镜像,然后创建并启动容器。可选的 --rm 标志将在容器命令退出后删除容器。

Finch 的系统要求与未来计划

目前,Finch 仅支持 macOS,系统要求包括至少 macOS Catalina(10.15)、Intel 或 Apple Silicon M1 系统,以及至少两个 CPU 和 4 GB 内存。团队表示未来有支持 Windows 和 Linux 的计划。

反馈与社区参与

Finch 团队正在通过 GitHub 和 Slack 积极征集反馈和路线图建议。更多详细信息可以在发布博客文章中找到。

阅读 46
0 条评论