WebAssembly,通常簡稱為 Wasm,是一種相對較新的技術,允許您編譯用 40 多種語言(包括 Rust、C、C++、JavaScript 和 Golang)編寫的應用程序代碼,并在沙盒環境中運行它" />
什么是 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)。
本文鏈接:http://www.www897cc.com/showinfo-119-2492-0.htmlDocker+Wasm 技術預覽簡介
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 使用 Docker 顯示上下文數據