Docker+Wasm 第 2 个技术预览版发布,新增 3 个运行时引擎支持
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 run --rm --runtime=io.containerd.wasmtime.v1 --platform=wasi/wasm secondstate/rust-example-hello:latest
正因为如此,借助 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
你也许感兴趣的:
- 多用户环境中的 rootless Docker
- Docker Image 终极理解
- 【程序员搞笑图片】听起来不错的方法
- Docker 1 号员工亲述:我们曾犯下的 3 个错误!
- Docker 的诅咒:曾以为它是终极解法,最后却是“罪大恶极”?
- 如何检查 Docker 镜像是否存在漏洞
- “虚伪”的 Docker 开始清退开源组织,不付费就删除所有镜像!
- Docker正在淘汰开源组织,想赚钱可以但吃相越来越难看了
- 优化 docker 镜像的几种方法
- 人人都爱 Kubernetes,Docker 难道就不香了吗?
你对本文的反应是: