Docker 发布集成 WebAssembly 的首个技术预览版


Docker 宣布推出与 WebAssembly 集成 (Docker+Wasm) 的首个技术预览版,并表示公司已加入字节码联盟 (Bytecode Alliance),成为投票成员。

Bytecode Alliance(字节码联盟)由 Mozilla、Fastly、Intel 与 Red Hat 联合成立,是一个推动 WebAssembly 标准化的组织,该联盟旨在通过协作实施标准和提出新标准,以完善 WebAssembly 在浏览器之外的生态。目前正在积极推动 WASI (WebAssembly System Interface),使 WebAssembly 能够安全地访问文件、网络和内存等系统资源。

公告写道,Docker+Wasm 让开发者能够更容易地快速构建面向 Wasm 运行时的应用程序。下图介绍了 Docker 是如何与 WebAssembly 进行集成。

可以看到,Docker Engine 继续使用与整体生态相统一的 containerd 容器运行时,但创建了一个新的 containerd shim——把负责容器进程运行的 runC 替换成 WasmEdge runtime。据称这是和 WasmEdge 合作的项目,这个 containerd shim 从 OCI artifact 中提取 Wasm 模块,并使用 WasmEdge runtime 来运行。

Docker 没有透露更多细节,但 WasmEdge 承诺会提供优于 Linux 容器的启动时间,而且 WasmEdge 应用程序的体积也明显更小,且运行速度更快。

Docker 联合创始人 Michael Irwin 写道:“我们将 Wasm 视为 Linux 容器的补充性技术,开发者可以结合自身情况选择最适合的技术方案(或者二者并用)。随着社区对 Wasm 的探索,我们希望开发者可以使用熟悉和喜爱的经验和工具,帮助让 Wasm 应用程序更易于开发、构建和运行。”

使用

使用下面命令即可启动示例 Wasm 应用程序:

docker run -dp 8080:8080 --name=wasm-example --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm32 michaelirwin244/wasm-example

参数解释:

  • --runtime=io.containerd.wasmedge.v1– 告知 Docker Engine 要使用 Wasm containerd shim 而不是标准的 Linux 容器运行时
  • --platform=wasi/wasm32– 指定要使用的镜像的架构。通过利用 Wasm 架构,开发者无需为不同的架构构建单独的镜像。Wasm runtime 将完成将 Wasm 二进制文件转换为机器指令的最后一步。

获取方式

下载 Docker Desktop 的技术预览版本即可体验 Docker+Wasm:

  • macOS Apple Silicon
  • macOS Intel
  • Windows AMD64
  • Linux Arm64 (deb)
  • Linux AMD64 (deb, rpm, tar)

要注意的是,由于 Docker+Wasm 尚处于早期的技术预览阶段,不建议在生产环境使用,因为有可能会出现变更,甚至从未来版本中删除。

详情查看 https://docs.docker.com/desktop/wasm/


相關推薦

2023-04-08

Wasmer 团队宣布推出 WCGI —— 即 WebAssembly + CGI,可使用 WebAssembly 进行服务器端开发。 WCGI 将 WebAssembly 的强大功能与 CGI 的易用性和多功能性结合在一起。通过 WCGI,开发者使用 WebAssembly 和 Wasmer 即可运行任何 CGI 应用程序。

2023-03-27

Docker 宣布推出与 WebAssembly 集成 (Docker+Wasm) 的第二个技术预览版。 Docker+Wasm 让开发者能够更容易地快速构建面向 Wasm 运行时的应用程序。下图介绍了 Docker 是如何与 WebAssembly 进行集成。 可以看到,Docker Engine 继续使用与整体

2022-11-01

SQLite 官方的 WASM 项目终于来了!这表示 WebAssembly 在 SQLite 社区完全进入工业级应用阶段! 1. WASM 是什么 WebAssembly,又名 WASM,是一种标准,它定义了一种低级编程语言,适合作为与许多其他语言交叉编译的目标,以及通过浏

2023-03-02

存储库。 可视化工具支持 .NET 远程调试 在通过 SSH、Docker 或 WSL 在 Unix 上调试 .NET 时,您现在可以使用 IEnumerable 和 DataSet Visualizer 检查变量/对象。 用于 ARM64 设备的 .NET MAUI 工具 Visual Studio 中对 .NET 多平台应用程序 UI (.NET M

2023-02-10

Google 于今天发布了 Android 14 的首个开发者预览版,这一发布时间与以往的发布时间类似,预计 Android 14 正式版将于今年第三季度推出。 支持多用户登录 一家人共用同一个设备的情况十分常见,尤其是共用平板电脑。除此之

2022-06-19

bsp;的 iOS 样式 对 Qt Multimedia 的空间音频支持 Qt for WebAssembly 已升级为稳定版。在 Qt 6.4 中,完全支持 Qt for WebAssembly 作为一个新平台 其他各种改进 Qt 6.4 的目标是在 9 月底之前发布稳定版,详情。

2024-01-16

服务和CSGHub Web Service的管理界面,普通用户可以快速使用Docker compose或Kubernetes Helm Chart启动服务,实现生产级的资产管理。具备自研能力的用户可利用CSGHub Server进行二次开发,将核心管理功能集成到外部系统或自定义高级功能。

2022-12-08

Ruby 3.2.0 RC 1 发布了,3.2.0 预览版引入基于 WASI 的 WebAssembly 支持和正则表达式超时退出机制,3.2.0 RC 1 则引入两项可显著缓解 ReDoS 攻击的改进,以及一些语言功能和性能改进。 改进的正则表达式匹配算法 从 Ruby 3.2 开始,Regexp

2022-09-30

Server 和 Qt Quick 3D Physics 等多个新功能,下面稍作介绍: WebAssembly 在 Qt 6.4 中,对 WebAssembly 的支持已不再局限于此前的 “技术预览”阶段,现在支持使用 Qt for WebAssembly 来构建针对 Web 平台的应用程序。 新的模块 Qt Quick (TP

2023-06-09

OpenStack:新增支持Victoria版本 Ceph:支持12/14/16版本 Docker:ISO集成版本更新至20.10.7 RunD:新增适配kata-containers3.0 更多适配组合,可在生态官网查询:https://ecology.chinauos.com/ 做好服务 免费使用授权模式 统信UOS服务器

2022-10-07

SUSE 发布了 Adaptable Linux Platform (ALP) 的首个原型——被命名为 "Les Droites"。 根据官方的介绍,开发 ALP 的动机是让用户能够专注于他们的 workload,同时对硬件和应用层进行抽象。通过使用虚拟机和容器技术,Adaptable Linux P

2023-07-01

日,微软通过 Dev Channel 向加入测试的用户 (Windows Insiders) 发布了新的 Windows 11 测试版——内置了 Windows Copilot 预览版。 要体验 Windows Copilot,用户需要运行 Windows Build 23493 及以上版本, Microsoft Edge 版本需要 115.0.1901.150 及以上。

2022-10-20

,自适应 Linux 平台(Adaptable Linux Platform,下文简称ALP)的首个原型已经上线!该平台由 SUSE 推出,旨在让用户专注于他们的工作负载,从硬件和应用层抽离出来。通过使用虚拟机和容器技术,ALP 可以让工作负载独立于代码流。

2023-01-16

Spring Shell 2.1.5 和 3.0.0-RC1 已发布。 Spring Shell 是基于 Spring 的交互式 Shell,可让开发者使用简单的基于 Spring 的编程模型来开发命令。 Spring Shell 3.0.0-RC1 是 3.0 系列的首个 RC 预览版,它基于 Spring Boot 3.0.1 构建,要求使