この手の記事はn番煎じですが、なんぼあってもいいですからね。
なんでそんなもの使うの
Windows には WSL (Windows Subsystem for Linux) という Windows 上で動く Linux が乗っています。これが 2020 年にバージョンアップし、 WSL2 になったことで Windows で Docker をつかった開発がとってもやりやすくなりました。まだまだ痒いところに手が届くと言った面では足りないところもありますが、業務で利用するには十分使えるようになってきてます。
Windows で Docker を使おうとすると、これまでは Windows の上に仮想環境(Hyper-V)がのってその上に Dokcer エンジンが動いて、という構造だったので、パフォーマンスが悪い、VirtualBox と併用できないなどの弊害がありました。これが WSL2 になって仮想環境を介さず WSL2 上で直接 Docker エンジンが動くようになって、デメリットがなくなりました!
さっそく、使ってみましょう。
WSL2 を有効化する
参考にした文書はこちら
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10#update-to-wsl-2
「Linux 用 Windows サブシステム」オプション機能を有効にする
管理者として PowerShell を開き、以下を実行します。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
PCを再起動します。
「仮想マシン プラットフォーム」オプション機能を有効にする
管理者として PowerShell を開き、以下を実行します。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
PCを再起動します。
WSL2 をデフォルトにする
管理者として PowerShell を開き、以下を実行します。
wsl --set-default-version 2
Linuxディストリビューションを選択しインストール
Microsoft Store を開き、Ubuntu をインストールします。バージョンが書かれていないものを選ぶと最新が入ります(今回は 20.04 がインストールされました)
初期設定
もうインストールは終わりました。他のWindowsアプリケーションと同じようにターミナルが起動できます。初期ユーザ/パスワードを設定し、ライブラリのアップデートをしておきましょう。
sudo apt update
sudo apt upgrade -y
Dockerのインストール
こうしきからもってきます
https://hub.docker.com/editions/community/docker-ce-desktop-windows
インストール中に WSL2 サポートを使うか聞かれるのでON
wsl -l -v
コマンドを打って動いているかどうか確認しましょう。
PS C:\Users\user> wsl -l -v
NAME STATE VERSION
* docker-desktop-data Running 2
Ubuntu Running 2
docker-desktop Running 2
三つ出てきましたが、
- docker-desktop:Dockerを動かすためのエンジン
- docker-desktop-data:イメージなどの格納先
どちらも WSL の環境のようです。僕の環境だと先に Docker が入っていたせいか、WSL の規定が Docker 仮想環境になってしまっていたので、wsl -s
コマンドで Ubuntu のほうにかえておきます。
PS C:\Users\user> wsl -s Ubuntu
PS C:\Users\user> wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
docker-desktop-data Running 2
docker-desktop Running 2
Visual Studio Code の環境を作る
Visual Studio Code はすでにインストールされている者とします。 Remote WSL
という拡張をインストールします。
Ubuntu 側に入ります。
プロジェクト用のディレクトリなどを適当に掘って
code .
で起動すると、Windows 側で WSL 内のディレクトリが初期で開かれた状態になります。
大事なこと
WSL2で作成されたファイルなどはWindowsローカルに置かれますが、こちらをいじってはいけません。