Subsystem for Linux 2(WSL2)はWindowsからLinuxが使える機能です。
2020年4月にリリースされるWindows10 2004から提供される予定です。
もともと2017年にリリースされたWindows 10 Fall Creators UpdateでWSLが提供されてましたが、そちらは本物のLinuxカーネルを使っておらず、実行できるシステムコールが限られてました。
2は本物のLinuxカーネルが動作します。
Dockerも使えるようになります。
これにより今後はWindowsでもLinuxを使用して開発が行いやすくなると思います。
WSL2のインストール
WSL 2 のインストール手順をもとに実施
WSL2に必要な環境条件は以下
- Windows 10 builds 18917 or higher
2020/03/20時点でWindows10 builds 18917はWindows Insider Program(slow or fast)に加入しないとアップデートできない。
- 
Windows Insider Programに加入する Windowsメニューから 設定 > 更新とセキュリティ > Windows Insider Programより加入する。
  
  
  
  
  
  
 [スロー]か[ファスト]を選択
  
  
  
- Windows Updateを実施する 
- 
WSL2を有効にする 
 設定 > アプリ > アプリと機能 > オプションから「Windowsのその他の機能」リンクをクリックする。
  
  
 以下のチェックをONにする。
 - Linux 用 Windows サブシステム
 - 仮想マシン プラットフォーム
   PowerShellを管理者権限で起動し、以下を実行しても実施できる。 
 > dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart > dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartその後、再起動する。 
- 
Microsoft StoreからLinuxをインストールする 後述のDocker Desktop for WSL 2が使えるのはUbuntu 18.04 LTSのみの模様。(2020/03/20時点 Storeには「Ubuntu」もあるが、そちらは対応していない) 
- 
Ubuntu 18.04 LTSをダウンロードしたら起動する 起動後にインストールが始まり、ユーザ名とパスワードを入力し、ユーザを作成する。 
- 
PowerShellを起動する 
 # インストールしたディストリビューションの一覧を表示する > wsl -l Linux 用 Windows サブシステム ディストリビューション: Ubuntu-18.04 (既定) # WSLの状態とバージョンを確認する(VERSIONが1はWSLということです) > wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 1 # Ubuntu-18.04をWSL2用に変換する > wsl --set-version Ubuntu-18.04 2 # WSL2を標準設定とする > wsl --set-default-version 2 WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください。上記のメッセージの通り、WSL 2 Linux カーネルの更新へアクセスし、更新プログラムをインストールする。インストール後、以下を実行する。 
 # WSL2を標準設定とする > wsl --set-default-version 2 # WSLの状態とバージョンを確認する > wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Stopped 2
- 
Ubuntuを起動/停止する 
 # 起動する > wsl -d Ubuntu-18.04 To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. # フォルダ階層は以下になる $ /home/user/ ← 登録したLinuxユーザのhome /mnt/c ← WindowsのCドライブ /mnt/d ← WindowsのDドライブ # Windowsに戻る $ exit
これでWindowsからLinuxが使えるようなりました。
WSLはWindowsからシームレスにシェルを使え、VirtualBoxやVMWareのようにOSが起動する時間を待つ必要もありません。
Docker Desktop for Windowsをインストールする
- Docker Desktop for Windowsをインストールする 
- 
Settings画面が表示されるので、以下を確認する - Dockerのステータスがrunningになっていること
- 
Use the WSL 2 based engineのチェックボックスがONになっていること  
 また、 Resources > WSL INTEGRATIONを選択し、Enable integration with my default WSL distroのチェックボックスがONになっていることを確認する
  
- 
DockerがWSL2 based engineで起動されていれば、Dockerコマンドを実施すると、上記でインストールしたWSL2のUbuntuにDockerコンテナが作成されるようになる PorwerShellを起動し、Dockerコマンドを実行することができる。 
 Ubuntuのほうでもdockerコマンドの実行ができる。
 # powershellでdockerコマンドを実行 > docker run hello-world ... Hello from Docker! This message shows that your installation appears to be working correctly. > docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0629bbd84b50 hello-world "/hello" 22 seconds ago Exited (0) 20 seconds ago mystifying_almeida # WSL2に切り替える > wsl -d Ubuntu-18.04 # Ubuntuでdockerコマンドを実行 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0629bbd84b50 hello-world "/hello" 22 seconds ago Exited (0) 20 seconds ago mystifying_almeidaWindowsとUbuntuでコンテナが共有されていることが確認できる。 
Docker Desktop for WSL 2を使うと、このようにWindowsからDockerコマンドを実行して、LinuxのDockerコンテナを操作することができます。
2020/04/11追記
DockerComposeは、PowerShellからは実行できないようです。(実行してもLinuxのコンテナとならない)。Linuxのほうで実行すればWindowsと共有できそうです。
2020/05/11追記
Docker Desktop For Windowsの(Edge版:バーション2.3.0.1)で、WindowsからDockerComposeできるようになりました。
こちらのバージョンではWindows10 Home Editionでも動作するようです。
Docker Desktop for Winodwsのバージョンアップに伴い本記事の内容を修正しました。
2021/03/07追記
Dockerのバージョンアップに伴いStable版に記述を修正しました。
 



 
    
Top comments (0)