Windows で Linux をシームレスに実行できることで、多くの一般的な開発タスクが容易になります。ビルド 18945 以降のバージョンの Windows 10 で WSL2 (Windows Subsystem for Linux 2) を実行している場合、多数の有用で興味深いシナリオが点灯し、機能します。
Docker for Windows (Docker Desktop for WSL 2 Tech preview のダウンロードはこちら) は優れていますが、歴史的には、Hyper-V クライアント内に表示される Moby と呼ばれる Hyper-V 仮想マシンを作成することによって、Windows で動作していました。これはユーティリティ VM ですが、ご存知のとおりです。
ただし、WSL2 が Windows 10 で実際の Linux カーネルを実行し、Hyper-V クライアント ツールの下にある (そして表示されない) 仮想マシン プラットフォームを管理している場合、WSL2 にコンテナーを処理させないのはなぜでしょうか?
それこそが、Docker Desklop WSL 2 Tech Preview が目指していることです。そして、WSL 2 と同じように高速です。
<ブロック引用>...コールド スタート後に Docker デーモンを起動するのに必要な時間が大幅に短縮されます。現在のバージョンの Docker Desktop では数十秒かかるのに対し、Docker デーモンの起動には 2 秒もかかりません。
Linux (Ubuntu など) を WSL 2 にセットアップしたら、Docker Deskop を右クリックして [WSL 2 Tech Preview] をクリックします。これは今のところ間抜けで超直感的ではない UI ですが、その時が来ました。
次に、[開始] をクリックします。
<ブロック引用>注:コマンド ラインで WSL 2 内に既に Docker をインストールしている場合は、それを停止し、Docker Desktop にそのライフサイクルを管理させます。
これが UI の始まりです。
Windows で PowerShell/CMD をやめると、「docker context ls」を実行できます。
C:\Users\Scott\Desktop> docker context ls
NAME DESCRIPTION DOCKER ENDPOINT
default Current DOCKER_HOST based configuration npipe:////./pipe/docker_engine
wsl * Docker daemon hosted in WSL 2 npipe:////./pipe/docker_wsl
2 つのコンテキストがあることがわかります。「docker context use wsl」を実行したところ、それがデフォルトになりました。
これは、Ubuntu からの Docker イメージと、Windows (PowerShell Core 内) からの Docker イメージです。それらは同じです!
甘い。ここでは、PowerShell Core (オープン ソースでクロスプラットフォーム、natch) を使用して、それ自体がクロスプラットフォームであるビルドを管理しています。また、Windows または Linux の両方で Docker ビルドまたはメタル ビルドの両方をシームレスに実行できます。同じボックスです。
また、Docker の Simon は次のように指摘しています。すべて戻ってきました。」これは、「Windows Docker」と元の WSL2 Docker に、ここで利用できると素朴に期待していたイメージのリストがあったためです。あなたは歴史的にアクティブな docker ユーザーです。
これまでのところ、私は非常に感銘を受けています。 Windows デスクトップ上の Linux は適切に感じられます。ピーナッツバターとチョコレートです。
スポンサー: Windows、macOS、Linux のクロスプラットフォームで機能する、パフォーマンス プロファイリング、単体テスト カバレッジ、および継続的テストのためのツールをお探しですか?最新の JetBrains Rider をチェックしてください!