iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

Wasm+Container 的現況

夢回一切的起點後,現在的 Wasm+Container 已經是達成且繼續發展的技術,後續的順序會重新調整一下,先讓大家體驗,再重新切入內部的細節。

今天我們將帶大家體驗當前的操作方式,以 Docker Desktop 為例,讓大家可以在自己的電腦環境中安裝並執行人生中第一個 Wasm Container Image。

安裝 Docker Desktop

請到 Docker Desktop 的官網 下載並安裝對應你電腦的硬體版本。

Docker Desktop 官網

在本文撰寫時,使用 v4.23.0

啟用 Wasm 的功能

  1. 點開右上角的設定齒輪

DockerDesktop右上角齒輪

  1. 切到 Features in development (正在開發中的功能)
  2. 勾選 Use containerd for pulling and storing images
  3. 且勾選 Enable Wasm

features in development.png

  1. 點選右下角的 Apply & Restart 這樣就能成功啟用 Wasm 的功能囉

第一個 Wasm Container

請在終端機內執行以下指令:

docker run \
  --runtime=io.containerd.wasmedge.v1 \
  --platform=wasi/wasm \
  hydai/wasm-image-demo:hello

若是第一次執行這個指令,應該會多一段在本地端找不到 hydai/wasm-image-demo:hello 的 image ,因此從 docker hub 上下載的資訊:

Unable to find image 'hydai/wasm-image-demo:hello' locally
1e3d4e0a27a1: Download complete
dc0171850647: Download complete
48f49f98e456: Download complete

結果應顯示為:

Hello WasmEdge from the container

上面的指令做了什麼?

docker run # 透過 Docker 來啟動容器
  --runtime=io.containerd.wasmedge.v1 # 使用的是 wasmedge 這個 Wasm Runtime 來執行,其他還有許多不同的 Wasm Runtime 可以選擇,如:wasmtime
  --platform=wasi/wasm # 由於 Wasm 是特別的格式,因此需要告訴 docker 你想執行的規格,預設會是當前的硬體環境喔(如 amd64 / aarch64 等)
  hydai/wasm-image-demo:hello # Wasm Container Image

該 image 中的內容

有興趣的讀者,可以先點進去範例程式碼來看,由於整個範例包含了:

  1. 如何用 Rust 撰寫一個程式,並編譯成 Wasm
  2. 將編譯出的 Wasm 包裝成 Wasm Container Image
  3. 使用 Docker 來執行(上面的內容)

這些細節將會在接下來的章節逐一跟大家說明,敬請期待↖(^ω^)↗


上一篇
一切開始的地方
下一篇
Wasm 怎麼被執行的
系列文
關於 WebAssembly 也能變成 Container 的這檔事15
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言