当地时间 10 月 24 日,Docker 发布了 WebAssembly(Wasm) 支持工具的预览版本。另外, Docker 还将作为投票成员加入 Bytecode Alliance,Bytecode Alliance 是 WebAssembly 和 WebAssembly System Interface 背后的非营利组织。
WebAssembly 允许开发者用 40 多种语言(包括 Rust、C、C++、JavaScript 和 Golang )编写应用程序的代码并在沙盒环境中运行,率先应用在 Web 浏览器领域中,如 Chrome、Firefox、Safari。但由于 WebAssembly 系统接口(WASI),Wasm 被迅速应用到浏览器之外的场景,比如 Vercel、Fastly、Shopify 和 Cloudflare 等公司支持使用 Wasm 在边缘运行代码。
Docker 表示,将 Wasm 视为 Linux 容器的补充技术,开发人员可以根据用例选择要使用的技术。
不过,Docker 在公告中提醒道,由于此次发布的是 Docker Desktop 的预览版本,可能存在无法按预期工作的情况,开发者在使用前务必对容器和映像进行备份。此外,此版本启用了 Containerd 镜像存储,并且无法禁用。如果开发者当前未使用 containerd 映像存储,则将无法访问预先存在的映像和容器。
当前,Docker Engine 使用与 Docker 生态系统其他部分相同的containerd容器运行时,但它没有使用 runc 来运行容器进程,而是使用WasmEdge运行时。
Docker 与 WasmEdge 合作创建了一个 containerd shim,此 shim 从 OCI 工件中提取 Wasm 模块并使用 WasmEdge 运行时运行。Docker 现在添加了对声明 Wasm 运行时的支持,这将允许开发者使用这个新的 shim。
Docker Desktop 预览版本下载地址:
领取专属 10元无门槛券
私享最新 技术干货