DockerコンテナイメージをWebAssemblyに変換、Webブラウザ上での実行も可能にする「container2wasm」バージョン0.3が登場

2023年6月13日

DockerコンテナイメージをWebAssemblyに変換し、WebAssemblyランタイム上で実行可能にするツール「container2wasm」のバージョン0.3がリリースされました。

開発者はNTTの徳永航平氏。container2wasmは実験的なツールとしてオープンソースで公開されています。

バージョン0.3では、RISC-Vアーキテクチャに加えてx86_64アーキテクチャのDockerコンテナイメージにも対応したことが大きな変更点です。

実際にDockerコンテナイメージをWebAssemblyに変換したものをWebブラウザ上で実行できるデモページも用意されました。

fig

下記はインテルの64ビットプロセッサを搭載したWindowsマシンのMicrosoft Edgeブラウザでデモページを開き、Vimのデモを起動したところです。

Webブラウザ上でターミナル画面が開き、Vimが起動しました。

fig

DockerコンテナのエコシステムをWebAssemblyで活用

container2wasmは、x86_64アーキテクチャのイメージにはエミュレータのBochsを、RISC-VのイメージにはエミュレータのTinyEMUを用いてWebAssemblyに変換していると説明されています。

下記が実際に変換するときのコマンドの例。「c2w」がコマンド名、ubuntu:22.04がDockerコンテナのイメージ、out.wasmが出力されるWebAssemblyバイナリの名前です。

$ c2w ubuntu:22.04 out.wasm

変換後のWebAssemblyバイナリはWASI(WebAssembly System Interface)に対応しており、WASI対応のWebAssemblyランタイムでも、Webブラウザでも実行可能となっています。

DockerコンテナイメージはLinuxとその上で動くさまざまなアプリケーションが豊富に揃っているため、これがそのままWebAssemblyに変換して実行できることが実用化されれば、WebAssemblyのエコシステムに大きなインパクトを与えそうです。

このcontainer2wasmの開発動機には、まさにそのようなことが示されていました。下記はGitHubのReadmeからの引用です。

Though more and more programming languages start to support WASM, it's not easy to run the existing programs on WASM. This sometimes requires re-implementing and re-compiling them and costs extra time for development. This is a PoC converter tries to solve it by enabling running unmodified containers on WASM.

WASMをサポートするプログラミング言語は増えてきていますが、既存のプログラムをWASMで動かすのは容易ではありません。再実装や再コンパイルが必要になることもあり、開発に時間がかかってしまいます。このPoCコンバータは、コンテナを変更することなくWASMで実行できるようにすることで、これを解決しようとするものです。

現時点ではまだ実験的プロジェクトの位置づけではありますが、今後の展開が楽しみな取り組みと言えます。

関連記事

このcontainer2wasmを用いて、Webブラウザ上でVSCodeからDockerコンテナを読み込んで同一ブラウザ上のWebAssemblyで実行するという、VSCode用の拡張機能「vscode-container-wasm」が登場しました。

あわせて読みたい

Docker WebAssembly コンテナ型仮想化




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本