重磅:Docker Desktop正式集成WasmEdge。后者首登GitHubTrending

news/2024/11/18 11:47:04/

上周五,Docker Desktop 发布了 4.15 新版本。在这个版本中,Docker Desktop 正式集成了 WasmEdge 的 containerd shim, 并且 Docker + Wasm 也从 tech preview 进入到了 beta 阶段。这意味着,1000 万 Docker Desktop 的用户都安装了 WasmEdge,Docker 开发者可以使用已经熟悉的工具链来开发 WasmEdge 应用。在这里插入图片描述
此外,上周 WasmEdge 上了 GitHub Tending。感谢各位开发者对 WasmEdge 的喜爱!

在这里插入图片描述

检查 WasmEdge 的源码:https://github.com/WasmEdge/WasmEdge

我们提供了一个基于数据库的完整微服务应用示例,如果你想要快速体验 Docker + Wasm,从这个 repo 开始,是最方便的。

首先,git clone 到 microservice-rust-mysql 本地,并打开这个示例。

$ git clone https://github.com/second-state/microservice-rust-mysql.git
$ cd microservice-rust-mysql

接下来,打开 Docker Desktop,确认 Docker Desktop 正在运行。你可以从这里下载最新的 Docker Desktop。

下载链接:https://docs.docker.com/desktop/release-notes/

然后,使用 docker compose up 构建和运行这个微服务 demo。

docker compose up

输入这个命令行后,docker 会按照 Dokcerfile 构建镜像,这其中有两个 Linux 容器镜像,分别是 Nginx 和 MariaDB,一个是 Wasm 镜像,运行着基于 Rust 的微服务。

然后 docker 会按照 docker-compose.yml 来启动容器,运行构建好的镜像。

运行结束后,在浏览器打开 http://localhost:8090/,就可以看到这个微服务的 web UI。如 UI 所示,这个微服务将前端的订单信息通过基于 Wasm 的微服务添加到数据库中。在这里插入图片描述

我们再回到 Docker Desktop 就可以看到,总共有三个容器在运行,其中,有一个被标记了 Wasm32,意味着这是一个 wasm 容器。
在这里插入图片描述

有三个镜像,其中 Wasm 镜像只有 3MB,而基于 Linux 的 nignx 镜像有12 MB,MariaDB 则是100多 MB。 Wasm 的轻量级由此可见一斑。

在这里插入图片描述

Wasm 不仅仅是占用空间小,Wasm 还是高性能的,启动时间在毫秒以内,而 Linux 容器启动则需要几百毫秒。

值得一提的是,当前亚马逊正在北美举办的AWSre:Invent六万大会上,AWS 做了其最重要的软件产品发布:lambda serverless 函数的启动时间从6秒降到了600 毫秒。而基于 WasmEdge 的微服务与 serverless 函数的启动时间可以轻松在毫秒以内。正如 Docker 创始人所说,服务端的 WebAssembly 是云计算的未来。

本篇文章介绍了如何使用 Docker Desktop 和 Docker compose 肩并肩运行Linux容器和 Wasm 容器,下一篇文章,我们将介绍如何配置 Dockerfile 与 docker-compose.yml,从 0 开始,使用 Docker 工具链构建自己的 Wasm 应用。

相关阅读:

Docker 与 WasmEdge 合作,发布 WebAssembly 支持


http://www.ppmy.cn/news/747120.html

相关文章

微软Power BI应用实战(1)——实时连接本地数据库

引言:我们知道,微软Power BI可以将本地开发的报表连同数据一起发布到云端,提供给业务用户随时随地访问。但更多的时候,我们希望访问报表时查看到的数据是最新的实时数据。针对这种情况,我们可以利用Power BI提供的本地…

Django model 表与表之间的关联(外键、一对一、多对多、联合主键)

Django model 外键的实现 主键: 在 Django 中,如果你没有显式地指定一个模型的主键,Django 会自动为其创建一个名为 “id” 的主键字段,这个字段是一个自增长的整数类型。因此,如果在 Author 模型中没有显式地指定主键…

Guitar Pro8.1最新版吉他练习好助手

Guitar Pro研发团队深知「简谱」之于中国用户的重要性,在经过几个月的测试和开发,最新的Guitar Pro软件已全面支持简谱功能!会带给您音乐学习和创作的极大便利。相信玩吉他的朋友多多少少都听说过Guitar Pro这款软件,那大家知道Gu…

图像超分辨率:小米低功耗超分,适用于移动端Extreme Low-Power Super Resolution Network For Mobile Devices

4. ELSR: Extreme Low-Power Super Resolution Network For Mobile Devices 小米的论文,网络很简单很快,训练步骤比较多。

android mi4 分辨率,小米4的屏幕尺寸是多少?小米4的分辨率是多少?

小米4的屏幕尺寸是多少 小米4的屏幕尺寸是5英寸。 针对小米4的屏幕尺寸是多少的问题,屏幕方面,小米4屏幕采用5英寸夏普和JDI屏,OGS全贴合工艺,并称NTSC色域比iPhone 5s更高。支持自动识别湿手和手套模式。还有边缘防误触专利技术&…

android mi4 分辨率,小米4c的屏幕尺寸是多少?小米4c的分辨率是多少?

小米4c的屏幕尺寸是多少 小米4c的屏幕尺寸是5英寸。 针对小米4c的屏幕尺寸是多少的问题,小米4c配备了3080mAh(4.4V高电压)电池,支持快充2.0,采用了USB Type-C接口,正反都能插,也成为了首款采用USB Type-C接口的小米手机…

mysql创建表练习

CREATE TABLE student ( Id int(10) primary key auto_increment comment "学号", Name varchar(20) not null comment "姓名", Sex enum(M,F) default M comment "性别", Birth year(4) comment "出生年份", Department varchar(20)…

Go语言程序设计(四)数组

一、数组的声明 在声明数组时,必须指定数组名、数组长度和数组类型,格式如下: var arrayName [arraySize] dataType 说明: (1)数组名的命名规则和变量名相同,遵循标识符命名规则。(2)在定义数组时,需要指定数组中元素的个数,即数组长度。例如,a[5]int…