Docker社、WSL2に最適化した次期「Docker Desktop」でKuberntesサポートなど、さらなる機能強化を表明
Windows 10にLinuxカーネルを組み込むことで、フル互換のLinux環境を実現する新機能「WSL 2」(Windows Subsystem for Linux ver.2)は、現在のところ2020年春に予定されている次期Windows 10のメジャーバージョンアップで登場予定です。
参考:[速報]Windows上でフル互換のLinuxシステムコールを実現する「WSL 2」発表、Dockerも実行可能に。Microsoft Build 2019
Docker社はこれにあわせて、Windows 10でDockerコンテナの環境を構築するツール「Docker Desktop」のWSL 2対応をすすめています。
同社はそのWSL 2対応Docker DesktopにおいてKubernetes対応などの機能強化を進めていることを、同社のブログ記事「Introducing the Docker Desktop WSL 2 Backend」で表明しました。
WSL 2上でKubernetesサポート
現在のWindows 10に搭載されているWSLは、WSL内部で発行されたLinuxのAPIコールをWindowsのAPIへ変換する仕組みであることなどにより、完全なLinux互換環境にはなっておらず、それゆえにWSLのうえにDockerコンテナを実現することはできません。
そのため現在のWindows 10版Docker Desktopでは、仮想化ハイパーバイザであるHyper-Vを用いてWindows 10内部に仮想マシンを起動、そこでLinux環境を構築したうえでDockerコンテナを実現していました。
しかしWSL 2が登場することで、WSL 2のLinux環境でDockerコンテナ環境が構築できるようになります。そのため、同社はWSL 2対応のDocker Desktopの開発を進めており、すでにテクニカルプレビューを公開しています。
そしてテクニカルプレビューユーザーからのフィードバックによって、以下の機能強化をさらに行うことが表明されました。下記は「Introducing the Docker Desktop WSL 2 Backend」からの引用です。
- Kubernetes support: you can now enable Kubernetes when using the WSL 2 backend
- Updated daemon: our WSL 2 backend now runs our latest stable Docker Daemon
- VPN-friendly networking: our WSL 2 backend leverages our efforts in this area, using vpnkit to ensure a VPN-friendly networking stack
- And more: the WSL 2 backend is now at feature parity with our Hyper-V backend. HTTP proxy settings, trusted CA synchronization, version pack support, support for our new container UI…
同社はこの機能強化版の次期Docker Desktopを便宜的に「Docker Desktop WSL 2 Backend」と呼んでいます。上記の強化ポイントをまとめると、WSL 2上でのKubernetesのサポート、最新版Dockerデーモンの採用、VPNフレンドリーなネットワーキング、現行のHyper-V版Docker Desktopと同等のさまざまな機能を利用可能、などとなっています。
下記が同社が明らかにした「Docker Desktop WSL 2 Backend」のアーキテクチャです。文字がつぶれて読みにくいかと思いますが、WSL 2のLinuxカーネルの上で全体が構築されています。また、ブート用のLinuxディストリビューションのBootstrapping Distroとデータストア用のDatastore Distroの2つが使われていることも特徴となっています。
WSL 2が内部で実現している専用の仮想マシンは非常に起動が高速なことなどから、Docker Desktop WSL 2 BackendではHyper-V版よりも15倍も起動速度が速いとのこと。
Docker Desktop WSL 2 Backendは数週間以内にDocker DesktopのEdgeチャネルでリリース予定とされています。