Windows10 に WSL2 をインストール(Docker Desktopの前準備)

やりたいことは、Windowsパソコンで、Dockerコンテナの実験君を簡単に実施したい!! ということですが、
WindowsでDockerコンテナを簡単に実行するには、VirtualBoxもあるけど、今回はDocker Desktopでやってみたい!!!
ということで、そのためには、WindowsにWSL2をインストールしようとなりました。

 

 

Windows10 に WSL2インストール

■WSL2とは?

Windows10の大型アップデート、Windows 10 May 2020 Update が2020年5月28日より配信され、同時配信したWSL 2(Windows Subsystem for Linux 2)について、従来のWSLとの違いを考察します。

WSL 2を使用する場合にはWindows 10のバージョン2004、ビルドが19041以上への更新が必要です。

WSL 2とはWindows Subsystem for Linux 2の略で、Windows 10上でLinuxを動作させるための仕組みであるWSLのバージョン2といった位置付けです。

Windows上でLinuxを動作させて、動作確認用などに使えます。WSL1の上に、WSL2を導入できますが、Linux起動時にWSL1 か WSL2か、どちらで動作させるか選択できます。

従来のWSLはLinuxカーネルではなく、WinカーネルがLinuxシステムコールを受け取り、それをWindowsシステムコールへ変換してましたが、変換が完全ではなかったので、Docker等のソフトウェアが動作しないことが多々ありました。

WSL 2ではHyper-Vを利用した完全なエミュレーション(辺な言い方)で、Linuxカーネルそのものが動作します。Dockerも動作するようになりました。

Hyper-VはWindows 10 Homeでは動かず、WSLも動きませんでしたが、WSL2に関するHyper-V機能だけ、Win10 Homeで動くようになり、WSL2も動くようになりました。

また従来のWSLは、IPアドレスがWindowsと共有でしたが、仮想ネットワークが作成され、個別のIPアドレスが割り当てられるようになりました。

■WSL2の弱点

【弱点】   サーバープロセスは通常、initプロセスから起動されるが、WSLはシェルが直接起動するので、前提となる処理が行われない。

【解決方法】 ①「systemd」を動かす ②Dockerコンテナを使う

■WindowsのWSL機能の有効化

下記のように、「Linux用Windowsサブシステム」と「仮想マシンプラットフォーム」をチェックします。
CPUの仮想化支援機能を使うので、BIOS/UEFI設定で、仮想化支援機能を有効にします。

Windowsの機能の有効化または無効化

■WSL2のUbuntuを導入

Microsoftストアで、Ubuntu20.04LTS をダウンロードします。

Microsoft Store

インストールkかかnかんrかんryかんりょかんりょう完了完了

プログラムメニューにも追加される

■WSL2がデフォルトになるようにコマンド入力

wsl –set-default-version 2

WSL2がデフォルトになるようにコマンド入力 wsl –set-default-version 2

■Ubuntu を起動

ユーザ名とパスワードを入力

※ Windows Terminal もシェル実行などできる

Windows Terminal もシェル実行などできる

Ubuntu のコマンドプロンプトからは、「exit 」で抜けられる。以下のように、Windows Terminalから「wsl」入力で、Ubuntuにログインできる。(実体はPowerShellみたい)

「genie」でWSLから「systemd」を使う

■ .NET Core ランタイムをインストール

※ genie は .Net Core で作られている

Ubuntuにリポジトリ追加

  wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
  sudo dpkg -i packages-microsoft-prod.deb

Ubuntuにリポジトリ追加

パッケージ一覧を更新  sudo apt update

.NET Core ランタイムをインストール 

.NET Core ランタイムをインストール 

 

wsl-translinux のリポジトリを追加

  curl -s https://packagecloud.io/install/repositories/arkane-systems/wsl-translinux/script.deb.sh | sudo bash

wsl-translinux のリポジトリを追加

再度、パッケージ一覧を更新して、systemd-genie パッケージをインストール

  sudo apt update;sudo apt install systemd-genie

systemd-genie パッケージをインストール

■ genieを起動

「genie」はWSL1ではサポートしていないと怒られたので、

一度、WSL Ubuntu から抜けて、調べると Ubuntu18.04 の WSL1 で動いていた。

WSL のデフォルトを Ubuntu20.04 に変更し、WSL2に変更

  wsl –setdefault Ubuntu-20.04 2

Ubuntu20.04 、WSL2に変更

 

 

genie に入った後に、「exit」で抜けると、genie を抜けたWSL環境になり、

さらに「exit」でPowerShellに戻る。

次の投稿で、Docker-Desktop から WordPressを起動します。

続く:Windows10 に Docker Desktop をインストール