
2026/10/04 0:55
Docker は常にマイクロ仮想マシン(2016 年より)を使用している。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
2016 年より、Docker Desktop はマイクロ VM(microVM)技術を導入しており、Mirage Unikernel ライブラリを基盤とする内部製「ライブラリ VMM」から進化したものであり、Mac および Windows におけるセキュアなコンテナ実行をサポートしています。このアーキテクチャは、重厚な VirtualBox インスタンスと不要なグラフィカルユーザインターフェースに依存していた以前の手法である Docker Toolbox を代替するものです。ライブラリ VMM(hyperkit から現在の Docker VMMへと進化)を埋め込むことで、セキュリティ監査を簡素化し、複雑なネスト構成を排除するための最小限で非信頼の Linux カーネル環境を作成しました。このアプローチにより、すべてのプラットフォームでのルートレス実行が可能となり、ホストと VM の間フェースが最小限に抑えられ、安定性とガバナンスが向上します。これにより VPN 相互運用性やリポジトリアクセス管理などの高度な機能が実現できます。2026 年に向けて、この基盤は Docker Desktop および新しい「Docker Sandboxes」(
sbx run コマンド経由)の両方をサポートし、Claude などの AI コーディングエージェントを安全に実行するための環境として特別に設計されています。この十年に及ぶ進化について詳しく知りたい方は、「A Decade of Docker Containers」と題された Communications of the ACM の記事をご参照ください。本文
Docker のマイクロ VM: 歴史と現状
Docker は、**2016 年よりマイクロ VM(microVM)**技術を継続的に採用しています。従来の Linux コンテナとは異なるアプローチにより、高セキュリティを実現しているのです。
マイクロ VM とは何か?
「マイクロ VM」とは、以下の要素で構成される最小限化された仮想マシン環境です。
- 動作基盤: 最小限に抑えた Linux カーネル上で動作します。
- 管理層: Firecracker などのミニマルな仮想マシン監視管理(VMM)を介して実行されます。
- ハイパーバイザ: KVM や Xen の上層で機能します。
注: これらの技術は現在大きな注目を集めていますが、Docker Desktop は長年にわたりこのマイクロ VM 技術を採用してきた事実をご存じでしょうか?
2015 年:Docker Toolbox との課題
2015 年、Docker を始めた頃は「Docker Toolbox」が主流でした。
- 採用技術: VirtualBox を利用していました。
- 特徴: 機能に富み優れた製品でしたが、用途に対して過剰な仕様を持っていました。
- 課題: VirtualBox の独自の GUI やアップロードプロセスは、Docker が必要とする範囲を遥かに超えていました。
ライブラリ型 VMM の開発と採用
Mac や Windows で Docker を「ネイティブアプリケーションのように」提供するためには、独自の開発が必要でした。その目的から以下のアプローチを取りました。
- 技術選定: Mirage Unikernel ライブラリを活用し、「ライブラリ型 VMM」を開発。
- 概念: アプリケーション内部に埋め込み可能で、単一目的・最小限・安全・高速な VMM です。
- 初版名:
hyperkit - 最新バージョン名:
Docker VMM
- 初版名:
- 基盤: VM のカーネルおよびルートファイルシステムは、LinuxKit プロジェクトを基に最小化しています。
- 現在の実装: さらにスリムかつ効率的ですが、概念は同一です。
- 比較対象: containerd/nerdbox のアプローチと同様と言えます。
2016 年:Docker for Mac(後の Docker Desktop)の利点
この技術を採用したことで、以下の明確な利点が実現されました。
- 全プラットフォームで rootless 動作可能:
- ホストマシン内に Linux カーネルを必要とせず、Linux の CVE(脆弱性)の影響も受けません。
- デバイスの最小化:
- ホストと VM の間の境界を慎重に制限でき、理解・監査が容易になります。
- ネットワークポリシーの柔軟性:
- VPN と連携しやすく、後のレジストリアクセス管理などへの拡張が可能です。
2026 年現在:技術の進化と活用
現在は Docker Desktop とともに、**Docker Sandboxes(sbx)**でも同様のマイクロ VM テクノロジーが基盤となっています。
- 主な用途: ご愛用のコーディングエージェントを安全に実行。
- 実現機能: 厳格な隔離とガバナンスの実現。
- 試運転例: Docker Sandboxes をインストール後、以下のコマンドで動作を確認できます。
sbx run claude
追加資料:詳細な歴史
この技術の歴史について深く掘り下げたい方は、以下を参照してください。
- 論文タイトル:『A Decade of Docker Containers』
- 掲載誌: Communications of the ACM
フッターノート(補足)
当初はすべての要素をライブラリ化し、静的ユニカーネル風のリンケージを目指しておりました。しかし、技術的な理由から**「各 VM につき単一のホストプロセスを持つ設計」**が現実的であることが確認されています。