Docker+Wasm Tchnical Preview 2がリリース。Wasmをコンテナとして扱える業界標準「runwasi」採用でWasmランタイムを選択可能に
今回は「Docker+Wasm Tchnical Preview 2がリリース。Wasmをコンテナとして扱える業界標準「runwasi」採用でWasmランタイムを選択可能に」についてご紹介します。
関連ワード (時点、発表、選択等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Docker Desktopを提供するDocker社は、Docker DesktopにWebAssemblyランタイムを統合したDocker DesktopのTechnical Preview 2をリリースしたと発表しました。
Technical Preview 2での最大の変更点は、runwasiを採用したことでWebAssemblyランタイムが選択できるようになったことです。
Technical Preview 1ではWasmEdgeのみに対応していた
2022年10月に発表されたTechnical Preview 1では、Docker DesktopにWebAssemblyランタイムを統合する手段として、WebAssemblyランタイムをまるでコンテナランタイムのように見せかけるための仕組みを持つ「containerd-wasm-shim」と呼ばれるソフトウェアを開発し、組み込んでいました。
参考:Docker DesktopがWebAssemblyランタイムを統合。コンテナと同様にWebAssemblyイメージを実行可能に
上図の右端の枝が「containerd-wasm-shim」を使ってWebAssemblyランタイムを組み込んでいることを示しています。
このTechnical Preview 1がリリースされた時点では、containerd-wasm-shimは特定のWebAssemblyランタイム、この時点ではWasmEdgeを前提にして作られていました。
その後2022年12月、最も普及していると見られるコンテナランタイム「containerd」の開発プロジェクトにおいてWebAssemblyをコンテナとして扱うためのソフトウェア「runwasi」が作られ、containerdに統合されます。runwasiはcontainerd-shimがベースになっています。
containerdにrunwasiが統合されたことで、containerdは標準機能としてWebAssemblyをコンテナとして見なせるようになったと同時に、runwasiがそのための事実上の標準インターフェイスになりました。
参考:コンテナランタイムのcontainerdに、WebAssemblyをコンテナとして扱うための「runwasi」が統合。これからのコンテナランタイムはWebAssemblyと統合されていく
runwasiの採用で複数のWebAssemblyランタイムに対応へ
Technical Preview 2では、このrunwasがDocker Desktopに取り込まれました。そのため、runwasiに対応したさまざまなWebAssemblyランタイムをDocker Desktopに統合できるようになりました。
現時点ではFermyonの「spin」、Deislabsの「slight」、そしてBytecode Allianceの「Wasmtime」が統合できると説明されています。
今後はDocker Desktopだけでなく、コンテナランタイムのcontainerdを使って動作するさまざまなプラットフォームでWebAssemblyがコンテナの一種として扱われていくことになるでしょう。
Technical Preview 2はMac(Intel/Arm)、Linux(Intel/Arm)、Windowsに対応しています。