search
LoginSignup
1

More than 1 year has passed since last update.

posted at

WSL2とDockerを導入してみる

WSL2 と Docker 導入手順の覚書き。
WSL1 から WSL2 に切り替えて、WSL2 上で動作する Docker を導入します。

導入手順は Microsoft の下記ドキュメントを参考にしました。

導入環境

Boot Camp ( intel CPU ) 上の Windows 10 Pro 20H2 (10.0.19042) で、既に WSL1 がインストールされている環境です。

Windows Version
PS C:\> Get-CimInstance -Class Win32_OperatingSystem | Format-List Version
Version : 10.0.19042
WSL Version
PS C:\> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Stopped         1

また、 Hyper-V は無効化されている状態です。
( WSL2 上で Docker を動作させるため無効状態でOK)
Hyper-V の状態は、「 コントロール パネル\すべてのコントロール パネル項目\プログラムと機能 」の「Windowsの機能の有効化または無効化」から確認するか、PowerShellを管理者権限で実行して「Get-WindowsOptionalFeature」コマンドで確認。

Run the PowerShell 7 as Administrator
Start-Process pwsh.exe -Verb runas
Hyper-V Status
PS C:\> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
FeatureName      : Microsoft-Hyper-V
DisplayName      : Hyper-V プラットフォーム
Description      : 仮想マシンとそのリソースの作成および管理に使用できるサービスを提供します。
RestartRequired  : Possible
State            : Disabled
CustomProperties :

BIOS 内部の仮想化を有効にする

Boot Camp で起動していると、BIOS 内部の仮想化が有効になっていない場合があります。
この設定は「タスクマネージャー」の「パフォーマンス」タブにある「仮想化」欄で確認できます。
最初、この設定が無効になっていたため、下記のエラーメッセージが表示され WSL2 が有効化できませんでした。

Error: 0x80370102 ??????????????????????????????????????

コンピューターの BIOS 内部で仮想化が有効になっていることを確認してください

BIOS 内部の仮想化を有効化するには macOS で再起動後、「システム環境設定」から「起動ディスク」 を選択し、ディスクを「BOOTCAMP Windows」に設定してから Windows を起動します。

WSL2 へ切り替える

WSL1 から WSL2 に切り替えます。
WSL1 がインストール済みのため「Linux用Windowsサブシステム」機能は有効になっており、「仮想マシンプラットフォーム」機能は無効化されている状態です。
仮想マシンの機能を有効化するため、 PowerShell を管理者権限で起動し、以下のコマンドを実行します。
有効化したら PC を再起動します。

Enable Feature VirtualMachinePlatform
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

再起動後、上記の参考ドキュメントに記載されている「Linux カーネル更新プログラムパッケージ」をダウンロードしてインストールします。
インストールが完了したら、 WSL2 を既定に設定します。

Set WSL2 as default
wsl --set-version Ubuntu-20.04 2

設定完了後、WSL2 に切り替わっているか確認します。

WSL Version
PS C:\> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2

Docker を導入する

Docker の公式サイトから Docker Desktop for Windows のインストーラをダウンロードします。
インストーラを実行し、「Install required Windows components for WSL 2」欄にチェックが付いていることを確認して OK ボタンを押します。
OK ボタンを押すとインストールが始まります。
インストール完了後、「Close and Log out」ボタンが表示され、押すとログアウトします。
ログインすると、自動的に WSL2 をバックエンドに Docker が起動します。

起動後に表示されているチュートリアルを実行したところ問題なく表示されました。

docker run -d -p 80:80 docker/getting-started

image.png
以上で WSL2 上で動作する Docker の導入は完了です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1