Docker+Wasm 技术预览简介
什么是 Wasm?
WebAssembly,通常简称为 Wasm,是一种相对较新的技术,允许您编译用 40 多种语言(包括 Rust、C、C++、JavaScript 和 Golang)编写的应用程序代码,并在沙盒环境中运行它。
最初的用例侧重于在网络浏览器中运行本机代码,例如Figma、AutoCAD和Photoshop。事实上,fastq.bio在将其基于 Web 的 DNA 序列质量分析器转换为 Wasm 时,速度提高了20 倍。迪士尼在 Wasm 之上构建了他们的Disney+ 应用程序开发工具包!浏览器中的好处显而易见。
但由于WebAssembly 系统接口(WASI),Wasm 正在迅速传播到浏览器之外。Vercel、Fastly、Shopify和Cloudflare等公司支持使用 Wasm 在边缘运行代码,而Fermyon正在构建一个平台以在云端运行 Wasm 微服务。
为什么是Docker?
在 Docker,我们的目标是通过克服应用程序开发的复杂性来帮助开发人员将他们的想法变为现实。我们努力让构建、共享和运行您的应用程序变得容易,无论底层技术如何。通过让所有人都能使用容器,我们证明了我们有能力让开发人员的生活更轻松,并被公认为最受欢迎的开发人员工具第一名。
我们将 Wasm 视为 Linux 容器的补充技术,开发人员可以根据用例选择他们使用的技术(或两者!)。随着社区探索 Wasm 的可能性,我们希望使用您了解和喜爱的经验和工具帮助使 Wasm 应用程序更容易开发、构建和运行。
Wasm 集成实际上是如何工作
1.我们正在利用我们最近的工作将图像管理迁移到 containerd,因为它提供了使用与 OCI 兼容的工件和 containerd 垫片的能力。
2.我们与WasmEdge合作创建了一个 containerd shim。该 shim 从 OCI 工件中提取 Wasm 模块并使用 WasmEdge 运行时运行它。
3.我们添加了声明 Wasm 运行时的支持,这将允许使用这个新的 shim。

安装预览版后,我们可以运行以下命令来启动示例 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 引擎我们要使用 Wasm containerd shim 而不是标准的 Linux 容器运行时
--platform=wasi/wasm32– 这指定了我们要使用的图像的架构。通过利用 Wasm 架构,我们不需要为不同的架构构建单独的图像。Wasm 运行时将完成将 Wasm 二进制文件转换为机器指令的最后一步。
镜像拉取后,runtime 会读取ENTRYPOINT镜像的 来定位并提取 Wasm 模块。然后将该模块加载到 Wasm 运行时、启动并配置网络。现在我们的机器上运行了一个 Wasm 应用程序!
这个特定的应用程序是一个简单的 Web 服务器,上面写着“Hello world!” 并将数据回显给我们。为了验证它是否正常工作,让我们首先查看日志。
docker logs wasm-example
Server is now running
我们可以通过打开http://localhost:8080或使用 curl 来获取“Hello world”消息。
curl localhost:8080
我们的响应会给我们一条 Hello world 消息:
Hello world from Rust running with Wasm! Send POST data to /echo to have it echoed back to you
要将数据发送到 echo 端点,我们可以使用 curl:
curl localhost:8080/echo -d '{"message":"Hi there"}' -H "Content-type: application/json"
我们将看到发回以在响应中使用的数据:
{"message":"Hi there"}
要删除应用程序,您可以像删除任何其他 Docker 服务一样删除它:
docker rm -f wasm-example
新的集成意味着您可以与 Linux 容器一起运行 Wasm 应用程序(甚至使用 Compose)。
您可能也感兴趣:
官方微博/微信

每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。

想在手机上看科技资讯和科技八卦吗?
想第一时间看独家爆料和深度报道吗?
请关注TechWeb官方微信公众帐号:
1.用手机扫左侧二维码;
2.在添加朋友里,搜索关注TechWeb。
为您推荐
继福特之后 通用汽车宣布明年起接入特斯拉超级充电网络
投行看好iPhone 15及Vision Pro 已上调苹果股票目标价
特斯拉计划每年生产37.5万辆Cybertruck全电动皮卡
林志颖复出为小鹏“代言” 海报却出现特斯拉?官方回应:只是玩梗
比亚迪F品牌正式官宣定名“方程豹” 年内发布首款新能源硬派越野SUV
消息称字节跳动正在内部测试对话类AI项目
中国电信广东客服:受影响用户的接听电话功能逐步恢复
特斯拉股价实现九连涨 距离万亿市值还差近3000亿美元
分析师称苹果应收购迪士尼 以推动Vision Pro普及
更多
- 若每年生产37.5万辆 特斯拉Cybertruck现有订单需要4年才能完成
- 继福特之后 通用汽车宣布明年起接入特斯拉超级充电网络
- 投行看好iPhone 15及Vision Pro 已上调苹果股票目标价
- 特斯拉计划每年生产37.5万辆Cybertruck全电动皮卡
- 荷兰隐私监管机构出于担忧要求OpenAI提供更多信息
- 电动汽车充电桩厂商SK Signet美国首座工厂已建成 下月投入运营
- 三星电子将向现代汽车供应最新一代汽车芯片 用于车载信息娱乐系统
- 史上最小最便宜车型 沃尔沃推出全电动紧凑型SUV EX30
- 数据中心热衷于AI GPU供应多元化 AMD有望成最大受益者
- 特斯拉股价实现九连涨 距离万亿市值还差近3000亿美元