BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Docker+Wasmがテクニカルプレビュー2に到達、3つの新しいランタイムエンジンを発表

Docker+Wasmがテクニカルプレビュー2に到達、3つの新しいランタイムエンジンを発表

DockerはDocker+Wasmのテクニカルプレビュー2を発表した。今回のプレビューではWasmワークロード実行の簡易化を目指し、FermyonのspinDeislabsのslightBytecode Allianceのwasmtimeといったランタイムエンジンを含めたランタイムのサポートを拡張している。

Docker+Wasmの3つの新しいWasmエンジンは、Docker+Wasmテクニカルプレビュー1で既にサポートされていたWasmEdgeを含め、サポートされるランタイムの合計数が4つとなった。 これらはすべて、最近containerdプロジェクトに加わったrunwasiライブラリに基づいている。

runwasiは、containerdで管理されるwasmワークロードの実行を可能にするRustライブラリで、もともとサポートしていたLinuxコンテナに加え、新しいコンテナタイプの抽象化を効果的に実現する。Runwasiは、その名の通りWASIベースであり、Wasmランタイムの共通プラットフォームを提供するWebAssemblyの、モジュラーシステムインターフェイスである。つまりWASIをターゲットにコンパイルされたプログラムであれば、WASIに準拠したランタイムで実行できるのだ。

Wasmコンテナは通常、コンパイルされたWasmバイトコードファイルのみを含み、追加のバイナリライブラリを必要としないため非常に軽量だ。これはWasmコンテナがLinuxコンテナよりも起動が速く可搬性が高いことを意味する。WasmEdgeの共同設立者であるMichael Yuan氏が、Twitterで述べているように、例えばLinux用の"スリム"と言われているPythonコンテナイメージは40MB以上あるのに対し、Wasmコンテナの場合は7MB未満で済む

Wasmコンテナはcontainerdで直接サポートされているため、Docker Desktopの最新リリースでDocker+Wasm technical preview 2を試すには、設定メニューの"開発中の機能"で"containerdを使用"オプションを有効にするだけだ。wasmtimeを使用してWasmコンテナを実行するには、以下のようにコマンドを叩く。

$ docker run --rm --runtime=io.containerd.wasmtime.v1 
--platform=wasi/wasm secondstate/rust-example-hello:latest

これにより、Wasmコンテナは、Docker ComposeやKubernetesなどのオーケストレーションプラットフォームを使用したLinuxコンテナと並行できる。 またDocker Desktopでは、WasmアプリをOCIコンテナにパッケージ化し、Wasmランタイムを埋め込むことで、DockerHubなどのコンテナレジストリを通じて共有可能だ。

作者について

この記事に星をつける

おすすめ度
スタイル

BT