【Docker】Your system supports WSL 2!っていうメッセージ

Your system supports WSL 2!

さっきDocker for Windowsを起動したら上記のメッセージがポップアップされた。

翻訳

英語で書いてあるので、とりあえずGoogle翻訳にぶち込んでみる。

お使いのシステムはWLS2をサポートしています

Docker Desktopは、Hyper-Vの代わりにWSL 2を使用して、パフォーマンスを向上させ、WSL2ディストリビューションとの相互運用性を提供できます。

・既存のコンテナーとイメージはWSL2バックエンドに移動されません
・一般設定でHyper-Vに戻すことができ、データは引き続き存在します
・Hyper-Vデータを削除する場合は、[トラブルシューティング]メニューで削除できます

WSL2とは

WSLとはWindows Subsystem for Linuxの略で、WindowsでLinux系のコマンドとか使えるようにするやつ。

で。

WSL2からついにGUIアプリの使用も可能になったみたい。

Windows 10 用 Windows Subsystem for Linux のインストール ガイド(2020/09/15更新)
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10

マイクロソフト、「WSL 2」でLinuxのGUIアプリを利用可能に(2020/09/29)
https://japan.zdnet.com/article/35160162/

これでほぼほぼWindowsでLinux環境が動かせるようになったってことかな?

なのでもうHyper-V上で仮想環境を動かさなくても、WSL2で動作させればパフォーマンスも良くなりますよってことだと思う。

どうすりゃいいの?

現在、すでにHyper-V上で開発しているコンテナーがある。

一応説明には既存のコンテナーとイメージは残りそうなことが書いてあるので、「Enable WSL 2」をクリックしてみる。

WSL 2 installation is imcomplete.

すると、上記のメッセージが。

WSL2のインストールが不完全です。

WSL 2 Linuxカーネルは、別のMSI更新パッケージを使用してインストールされるようになりました。
リンクをクリックし、指示に従ってカーネルアップデートをインストールしてください:
https://aka.ms/wsl2kernel.

Linuxカーネルをインストールした後、[再起動(Restart)]を押します。

言われた通り、リンクをクリックしてみる。

Updating the WSL 2 Linux kernel

Microsoftのサイトに飛ぶので、download the latest WSL2 Linux kernelリンクをクリックする。

wsl_update_x64.msi

msiファイルがダウンロードされるので、ダウンロード後、msiファイルを起動する。

インストールウィザードは一回「Next」をクリックするくらいなので省略。

Linuxカーネルのインストールが完了したら、もとのメッセージウィンドウに戻って「Restart」ボタンをクリックしてDockerを再起動する。

Docker WSL2 running

Linuxカーネルがインストールされていれば、正しくDocker for Windowsが起動される。

WSL2起動の状態でHyper-Vのコンテナは起動できる?

正直、一番気になっていたのはここ。

今後、新しく作成する環境はWSL2ベースでいきたいが、従来の環境は開発が完了するまでそのまま使いたい。

早速、従来の仮想環境の起動を試してみる。

DockerをWSL2に切り替え後の起動で出るメッセージ

あわわわわ…なんか明らかに普段見ない動きをしてらっしゃる…
これは…コンテナをWSL2版で再生成してる…のか?

もとの環境にもよるだろうけど、10分ほどかかって初回起動は終了。
さて、まともに動くのか?

WSL2に置き換えられた環境で動作確認

今回の環境はLaradockで作成していたLaravel環境。

動かしてみると表示はされるが、なぜかstorageへのシンボリックリンクがうまく動いていなかった。

php artisan storage:link

を実行すると

The "public/storage" directory already exists.

と表示されて、たしかにpublic直下に「storage」は存在する。

だが、シンボリックリンクにはなっておらず、リンクファイルだけが残っている感じだった。

なので、rm storageで、リンクファイルを削除してから、もう一度php artisan storage:linkで生成する。

今度はちゃんとシンボリックリンクとして生成され、storage以下を見に行けるようになった!

いまのところシンボリックリンク以外は問題ないけど、使っているうちに問題出てきそうなので、都度メモしようと思う。

それにしても、Hyper-V版より、処理速度が落ちたと思うのは僕だけだろうか…?

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください