1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerの生みの親が「WasmがあればDockerは要らなかった」と言った話 ── 2026年、その予言は現実になりつつある

1
Posted at

はじめに

2019年、Docker創設者のSolomon Hykes氏がこんなツイートをしました。

"If WASM+WASI existed in 2008, we wouldn't have needed to created Docker. That's how important it is. Webassembly on the server is the future of computing."

(もしWASM+WASIが2008年に存在していたら、Dockerを作る必要はなかった。それほど重要なものだ。サーバー上のWebAssemblyはコンピューティングの未来だ。)

当時は「まさか」と思った人が多かったはずです。しかし2026年、この予言が驚くほど現実味を帯びてきています。

Dockerイメージ200MBがWasmなら10MB以下。コンテナ起動に数秒かかるところ、Wasmなら0.5ミリ秒。AkamaiがWasmランタイム企業のFermyonを買収し、Cloudflareは330拠点以上でWasmワーカーを本番運用している──。

この記事では、「DockerとWasmは何が違うのか」「本当にDockerは不要になるのか」を整理します。


そもそもWebAssembly(Wasm)とは

WebAssembly(ワズム、略称Wasm)は、もともと ブラウザ上で高速にコードを動かす ために設計されたバイナリフォーマットです。C、C++、Rust、Go などの言語で書いたコードをWasmにコンパイルすると、ブラウザ上でネイティブに近い速度で実行できます。

「ブラウザの技術でしょ? サーバーと何の関係が?」と思うかもしれません。話が変わったのは WASI(WebAssembly System Interface) の登場です。

WASIは、Wasmにファイルシステムやネットワークなど OS機能へのアクセスを標準化して提供する仕様 です。これによってWasmはブラウザの外──サーバー、エッジ、CLIツール──で動くようになりました。

【Wasmの進化】
2017年  ブラウザ4社がWasmサポート開始(Chrome, Firefox, Safari, Edge)
2019年  WASI発表。Wasmがブラウザの外へ
2024年  WASI 0.2.0 安定版リリース(コンポーネントモデル対応)
2026年  WASI 0.3.0 プレビュー(非同期処理対応)
          WASI 1.0 を2026年後半〜2027年初頭に予定

DockerとWasmの違いを整理する

Dockerを使ったことがある方は多いと思います。では、Dockerコンテナの代わりにWasmを使うと何が変わるのでしょうか。

比較項目 Docker コンテナ Wasm モジュール
イメージサイズ 数十MB〜数百MB 数百KB〜数MB
起動時間 数百ミリ秒〜数秒 サブミリ秒(0.5ms程度)
分離方式 Linuxカーネルの名前空間・cgroups Wasmランタイムのサンドボックス
OS依存 Linuxカーネルが必要 OS非依存(ランタイムがあればどこでも)
言語サポート ほぼすべての言語 Rust, C/C++, Go, Python, JS 等(拡大中)
エコシステム 非常に成熟 急成長中だが発展途上

最も衝撃的なのは 起動時間 です。ある開発者の検証では、Dockerベースのマイクロサービスを同じ機能のWasmモジュールに置き換えたところ、コールドスタートが100倍以上速くなったという報告もあります。


なぜWasmがサーバーサイドで注目されているのか

起動が速いだけなら話題にはなりません。Wasmがサーバーサイドで注目される理由は3つあります。

1. エッジコンピューティングとの相性が抜群

エッジ(ユーザーに近い場所にあるサーバー)で処理を行うには、軽量で即座に起動するランタイムが必要です。Dockerコンテナは重すぎてエッジには向きません。

Wasmなら、リクエストが来た瞬間にモジュールを起動し、処理して、即座に破棄できます。Cloudflare Workersは、まさにこの仕組みで330拠点以上でWasmベースのサーバーレス関数を本番運用しています。

2. セキュリティが「デフォルトで安全」

Dockerコンテナはホストのカーネルを共有するため、コンテナ脱出(container escape)と呼ばれる脆弱性のリスクが存在します。

一方、Wasmはサンドボックス内で実行され、明示的に許可しない限り ファイルシステムやネットワークにアクセスできません。これは「Capability-based Security」(能力ベースのセキュリティ)と呼ばれ、「デフォルトで何もできない → 必要な権限だけ渡す」という設計です。

3. 「一度ビルドすればどこでも動く」が本当に実現する

Dockerの「Build once, run anywhere」は実際にはLinux前提でした。Wasmは本当にOS・アーキテクチャに依存しません。同じWasmモジュールがブラウザでも、Linux/macOS/Windowsサーバーでも、エッジでも動きます。


2026年の実サービスでの採用状況

「理論はわかったけど、本番で使われてるの?」という疑問に答えます。

Akamai × Fermyon

2025年末、CDN大手のAkamaiがWasmランタイム企業 Fermyon を買収しました。Fermyonが開発するWasmフレームワーク Spin は、コールドスタート約0.5ミリ秒を実現しています。

買収後、Fermyon Wasm Functions on Akamai として4,000以上のエッジロケーションでWasmベースのサーバーレス関数が利用可能になりました。Fermyon CEOのMatt Butcher氏は「2026年は、平均的な開発者がこの技術の可能性に気づく年になる」と述べています。

Cloudflare Workers

Cloudflare Workersは2018年からWasmをサポートしており、現在は330拠点以上のグローバルネットワークで本番運用されています。Shopifyは Cloudflare Workers をベースとしたホスティングプラットフォーム「Oxygen」を構築しており、ストアフロントのトラフィックの70〜80%をエッジで処理しています。

Docker自身もWasmを採用

興味深いことに、Docker自身がWasmランタイムを統合しています。Docker Desktopでは、containerdのshim(仲介プロセス)を通じて WasmEdge、Wasmtime、Spin などのWasmランタイムを利用可能です。

# docker-compose.yml でWasmとLinuxコンテナを共存させる例
services:
  # 従来のLinuxコンテナ
  database:
    image: postgres:16
    ports:
      - "5432:5432"

  # Wasmモジュールとして実行
  api:
    image: my-api:latest
    runtime: io.containerd.wasmtime.v1
    ports:
      - "8080:8080"

つまり、DockerとWasmは「対立」ではなく「共存」 の方向に進んでいます。


Wasmの弱点:まだDockerを置き換えられない理由

バラ色の話ばかり書きましたが、正直に言えば 2026年時点でDockerを完全に置き換えるのは無理 です。

言語サポートの制約

RustやC/C++はWasmとの相性が非常に良いですが、Python、Ruby、PHPなどのスクリプト言語のサポートはまだ限定的です。既存のWebアプリケーションをそのままWasmに移行するのは、言語によっては現実的ではありません。

エコシステムの成熟度

Docker Hubには数百万のコンテナイメージがあり、ほぼすべてのミドルウェアがDocker対応しています。Wasmはまだそこまでのエコシステムが整っていません。

WASI仕様がまだ安定していない

WASI 0.2.0が2024年1月にリリースされ安定版となりましたが、WASI 1.0(最終安定版)は2026年後半〜2027年初頭の予定です。仕様が固まりきっていない部分があり、本番環境への全面採用はリスクが伴います。


結論:「Dockerオワコン」ではなく「使い分け」の時代

Solomon Hykes氏の予言は、方向性としては正しかったと言えます。Wasmはサーバーサイドで本格的に使われ始めており、特にエッジコンピューティングではDockerコンテナを完全に上回る性能を示しています。

ただし、2026年の現実的な答えは 「Docker OR Wasm」ではなく「Docker AND Wasm」 です。

ユースケース 推奨
エッジでの軽量処理 Wasm(起動速度が圧倒的)
既存のWebアプリ運用 Docker(エコシステムが成熟)
マイクロサービスの新規開発(Rust/Go) Wasmを検討する価値あり
データベースやミドルウェア Docker(Wasmでは動かない)
ハイブリッド構成 Docker + Wasm(docker-composeで共存)

Wasmを今すぐ試してみたい方には、Fermyon Spin がおすすめです。数行のコマンドでWasmアプリケーションを作成・実行でき、Wasmの起動速度を体感できます。

# Spinのインストール
curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash

# 新しいSpinアプリを作成(Rust)
spin new -t http-rust my-api
cd my-api

# ビルド & 実行
spin build
spin up
# → http://127.0.0.1:3000 でサーバーが起動(ミリ秒単位)

Dockerがコンテナ革命を起こしたように、Wasmはその次の革命を静かに進めています。完全な置き換えはまだ先ですが、「知らなかった」では済まない段階に来ているのは確かです。


参考:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?