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

2024-09-27

项目介绍 积木报表 JimuReport,是一款免费的数据可视化报表工具,含报表、仪表盘和大屏设计,像搭建积木一样完全在线设计报表!功能涵盖,数据报表、打印设计、图表报表、门户设计、大屏设计等! 可视化报表,DataV

2024-08-20

的形式打造轻松愉悦的学习体验。 MoonBit 现已支持使用 WebAssembly 开发小型复古游戏的 WASM-4 框架。凭借 MoonBit 的高效工具链和简洁设计,入门级开发者可以在官方教程的指导下轻松创作属于自己的第一款游戏。 同时,框架内置

2024-11-01

复] 修复数据加密策略配置未生效问题 [修复] 修复 Kafka Docker Compose 配置错误,导致 Kafka 镜像启动抛错问题 [修复] 修复前端 Vite CSS 样式配置不兼容,导致页面启动抛错问题。 [修复] 修复微服务环境下,分布式事件使用错误

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