Py学习  »  docker

Docker+Wasm第2个技术预览版发布,新增3个运行时引擎支持

InfoQ • 2 年前 • 273 次点击  

作者 | Sergio De Simone
译者 | 平川
策划 | 丁晓昀

Docker 宣布了 Docker+Wasm 的第 2 个技术预览版,旨在简化 Wasm 工作负载的运行,并扩展运行时支持,包括 Fermyon 的 spin,Deislabs 的 slight 和 Bytecode Alliance 的 wasmtime 运行时引擎。

Docker+Wasm 中新增支持的 3 个 Wasm 引擎使其支持的运行时总数达到了 4 个,其中包括在 Docker+Wasm 第 1 个技术预览版中已经支持的 WasmEdge。它们都基于 runwasi 库。该库最近加入了 containerd 项目。

runwasi 是一个 Rust 库,它支持运行通过 containerd 管理的 wasm 工作负载。因此,除了 containerd 最初支持的 Linux 容器之外,它还为新的容器类型创建了一个有效的抽象。顾名思义,runwasi 是基于 WASI 的。WASI 是 WebAssembly 的模块化系统接口,为 Wasm 运行时提供了一个公共平台。也就是说,如果一个程序被编译为目标 WASI,那么它就可以在任何符合 WASI 标准的运行时上运行。

通常,Wasm 容器只包含一个编译好的 Wasm 字节码文件,而且不需要任何额外的二进制库,这使得容器小很多。这也意味着 Wasm 容器的启动速度通常比 Linux 容器更快,而且可移植性更好。例如,正如 WasmEdge 联合创始人 Michael Yuan 在 Twitter 上所说的那样,Linux 上“最小”的 Python 容器镜像超过 40MB,而对应的 Wasm 容器镜像不到 7MB。

作为 containerd 直接支持的 Wasm 容器,要在 Docker Desktop 的最新版本中尝试 Docker+Wasm 的第 2 个技术预览版,唯一需要做的事情是启用开发 > Settings > Features 下的“Use containerd”选项。

使用 wasmtime 运行 Wasm 容器,可以执行以下命令:

正因为如此,借助 Docker Compose 或其他编排平台(如 Kubernetes),Wasm 容器可以与 Linux 容器并行运行。此外,通过在 OCI 容器中嵌入 Wasm 运行时,Docker Desktop 还可以将 Wasm 应用程序打包到 OCI 容器中,从而可以通过 DockerHub 等容器注册中心来共享 Wasm 应用程序。

原文链接

https://www.infoq.com/news/2023/03/docker-wasm-containers-preview-2/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

今日好文推荐

彻底告别K8s和Docker Swarm!Ruby On Rails 之父下云后:系统好用又便宜,还清理了几千行代码

针锋相对!为挑战GPT-4加持的Copilot X,谷歌与拒绝被微软收购的Replit联合发布编码工具

后摩尔定律时代,如何提升云效益的天花板

可悲的现实,大部分技术领导者可能并不称职

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/153273
 
273 次点击