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

上周五,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 支持

猜你喜欢

转载自blog.csdn.net/weixin_42376823/article/details/128187104