跳到主要内容

使用 Docker 的快速入门

在本指南中,我们将介绍如何在 Docker Desktop 中快速运行 WasmEdge 应用。由于整个开发和运行环境都由 Docker Desktop 管理,因此没有额外的依赖。

备注

如果你没有使用 Docker Desktop,请从这里开始

我们将介绍以下示例。

在此快速入门指南中,我们将介绍如何使用 Docker 命令运行 WASM 容器应用。如果你对如何从源代码构建、发布和组合 WASM 容器应用感兴趣,请查看Docker + wasm 章节

环境

你必须安装 Docker Desktop 4.15+。确保在 Docker Desktop 中启用了 containerd 镜像存储功能。

Docker config

运行独立的 WASM 应用

Hello World 示例是一个独立的 Rust 应用程序。其源代码和构建说明在此处

使用 Docker 来运行容器化的 WASM 应用。WASM 容器镜像存储在 Docker Hub 中,镜像大小仅为 500KB。该镜像可在 Docker 支持的任何 OS 和 CPU 平台上运行。

$ docker run --rm --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm secondstate/rust-example-hello:latest
Hello WasmEdge!

了解如何在 Rust 中创建 WASM 应用

运行 HTTP 服务器

这个示例是一个用 Rust 编写的独立的 HTTP 服务器。它演示了 Rust + WasmEdge 作为轻量级微服务堆栈。其源代码和构建说明在此处

使用 Docker 从 Docker Hub 拉取容器镜像(大约 800KB),然后在 WasmEdge 容器中运行它。该容器作为服务器启动。请注意,我们将容器的端口 8080 映射到本地主机的端口 8080,以便从 WASM 容器外部访问服务器。

$ docker run -dp 8080:8080 --rm --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm secondstate/rust-example-server:latest
Listening on http://0.0.0.0:8080

在另一个终端窗口中执行以下操作。

$ curl http://localhost:8080/
Try POSTing data to /echo such as: `curl localhost:8080/echo -XPOST -d 'hello world'`

$ curl http://localhost:8080/echo -X POST -d "Hello WasmEdge"
Hello WasmEdge

了解如何在 Rust 中创建 WASM 服务

运行基于 JavaScript 的服务器

这个示例是使用 Node.js API 编写的独立 HTTP 服务器。它演示了将 WasmEdge 作为零依赖和可移植的 Node.js 应用的轻量级运行时。其源代码在此处

$ docker run -dp 8080:8080 --rm --runtime=io.containerd.wasmedge.v1 --platform=wasi/wasm secondstate/node-example-server:latest
... ...

在另一个终端窗口中执行以下操作。

$ curl http://localhost:8080/echo -X POST -d "Hello WasmEdge"
Hello WasmEdge

了解如何在 WasmEdge 中运行 JavaScript 应用。

下一步