ob体育「教程」Docker + Wasm 初学
点击量: 发布时间:2022-11-25 20:02:35

  ob体育由于我认为 WebAssembly 卓殊蓄志思,因此我念我该当把它们都试一试,然后写一篇著作来帮帮其他同样念体验 Docker + Wasm 的人。

  WebAssembly (又称 Wasm) 创修卓殊幼、卓殊速的二进造文献,ob体育这些二进造文献正在职何地方的平和沙箱中实行,只须有一个 WebAssembly Runtime。说真话……它们比容器更幼、更速、更平和,况且特别跨平台—— 这话是我说的,我认可我是容器的超等粉丝。

  无论何如,WebAssembly 正成为云原生范畴的一件大事[4],而 Docker 也念正在此有一席之地。

  我将一步一步指导你编写一个 hello world Wasm 使用,将其打包为 OCI 镜像以及推送到 docker Hub,并行使 Docker 运转它。假若你念跟我一同做,你需求做下面两个盘算,但假若你只是念阅读,那也不要紧。

  下文的总共职业都将行任务令行实行。你会需求 Docker Desktop 和 Rust 。

  此时,Rust app 已编写好,并能够编译为 Wasm 二进造文献了。

  cargo 下令举动 Rust 的一片面一经装置。它还懂得正在哪里能够找到源代码以及何如将其编译为 Wasm 二进造文献。

  咱们将正在接下来的程序中借帮 Docker 实行它。然而,正在此之前,咱们会将其构修到 OCI 镜像中,以便它能够存储正在 Docker Hub 中并由 Docker 实行。

  现正在实行此操作的格式感想有点过期,我愿望未来会有所变更。然则,你从一个偶尔根源镜像入手,复造 Wasm 模块,并将法式配置为举动 Wasm 二进造文献实行。

  以下的 Dockerfile 对此实行了描画。正在你确现在目次中创修它(你该当正在你的 hello-docker 目次中)。

  创修Dockerfile[7]后,运转以下下令来构修镜像。该下令假定你与 Dockerfile 位于统一目次中。

  这是一个可选程序。假若你不妄想行使 Docker Hub,请跳过。然则,假若实行此程序,则需求一个Docker ID[8]。它们是免费的,假若念讲究进修和行使 Docker,它们就很紧要。

  运转以下下令以行使你己方的 Docker ID 标志镜像,以便你能够将其推送到己方的 Docker Hub 存储库。教程我的 Docker ID 是 nigelpoulton,因此我将运转下面的下令。

  行使标志有你的 Docker ID 的镜像,运转以下下令将其推送到 Docker Hub。请记住调换成己方的 Docker ID。我第一次试验时失利了,我不得不实行手动 docker login 并再次运转下令。

  正在撰写本文时,你需求 Docker Desktop 的手艺预览版才略达成此程序。你能够正在这篇著作[9]中找到下载链接。

  运转以下下令告诉 Docker 运转打包正在 OCI 镜像中的 Wasm app。为了可读性,它是一个打包正在多行上的单个下令。

  现正在还优劣常早期的阶段,写作本文时(2022 年 11 月),有些实质也许会过期。实行细节会有变革,少少 CLI flag 也会变更。比如,--platform=wasi/wasm32 一经安置更改为 wasi/wasm。

  然而,偏向很显着,而且也许行使熟习的 Docker 器械和才能去创修 WebAssembly app 是意思庞大的。ob体育「教程」Docker + Wasm 初学