WSL2で導入された変更を反映するために2020/02/18を更新
こんにちは!Microsoft PMは、WSLとコマンドラインで作業しています。
WSLを使用すると、ネイティブの変更されていないLinux ELF-64バイナリをWindowsで直接実行でき、お気に入りのLinuxツールをWindowsの「ホスト」OS上で実行できます。
WSL1は、NTカーネルの最上部にLinux syscall互換レイヤーを追加するアプローチを採用しました。これにより、LinuxバイナリをNT上で実行し、ホストOSと同じ基礎となるファイルシステム、ネットワーク、プロセスリストなどを共有できます。
一方、すぐにリリースされるWSL2は、実際のLinuxカーネルの上で、実行するアプリが必要とするRAMのみを割り当てる軽量VM内で、ディストリビューションのバイナリをLinuxコンテナー内で実行し、解放されたRAMを解放してホストOS。これにより、100%Linuxの互換性が提供され、Linuxツールをほぼネイティブのパフォーマンスで実行できるようになり、ホストから必要な最小限のリソースを消費するため、マシンを高速かつスムーズに実行できます。
WSL2以前は、WSL1でDockerクライアントを実行して、ローカルホスト上のHyper-Vで実行されているDocker for Windowsを駆動したり、リモートDockerサーバーを管理したりできました。しかし、多くの技術的な理由により、WSL1上でDocker Engineを実行することはできません。
ただし、WSL2のDockerでも同じことができますが、必要に応じてWSLの上でDocker Engine自体を実行することもできます。これは、WindowsデスクトップでDockerを実行するためのDockerの推奨される将来のパスです。
WSLの詳細については、https://aka.ms/learnwslのビデオとドキュメントをご覧ください。