Docker+Wasm Tchnical Preview 2がリリース。Wasmをコンテナとして扱える業界標準「runwasi」採用でWasmランタイムを選択可能に
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に対応しています。
関連記事
2024年9月。ByteCode Allianceから「Wasm OCI Artifact layout」仕様が登場しました。
あわせて読みたい
Kotlin/Wasmでサーバサイドアプリケーションを開発するフレームワーク「KoWasm」が登場。WebAssemblyのガベージコレクションやコンポーネントの活用を想定
≪前の記事
Google Cloud、高性能化したPostgreSQL互換「AlloyDB」のオンプレミス向けソフトウェア「AlloyDB Omni」発表。開発環境での利用は無料