フリーランスエンジニア向けIT系求人・仕事・案件情報サイト
更新日

WSL2を用いてDocker Desktopでローカル環境を構築する

WSL2のセットアップ

インストール

まずはPower Shellを管理者として実行します。
コマンドを打ち込んでWSL2をインストールします。

wsl --install

以上のコマンドで以下の内容が実行されます。

  • オプション コンポーネントの有効化
  • 最新Linux カーネルのダウンロード
  • WSL2の既定設定
  • Linuxディストリビューションのインストール(Ubuntu)

ユーザー登録

完了するとUbuntuのウィンドウが開くので、そこでユーザーを登録します。
以下のように質問されるので対話的に回答していきます。

Enter new UNIX username: 任意のユーザー名
New password: 任意のパスワード
Retype new password: 任意のパスワード

ユーザー登録まで完了したらUbuntuのOS情報を確認してみます。
UbuntuのOS情報は、Ubuntuのウィンドウで以下のコマンドを実行します。

cat /etc/os-release

以下の様にOS情報が表示されればOKです。

Docker Desktop for Windowsのセットアップ

インストールと設定

以下からインストーラーをダウンロードしてインストールを開始します。
https://www.docker.com/products/docker-desktop

完了後にDocker DesktopのSettingsでWSL Integrationを設定します。
「Enable integration with my default WSL distro」と「Ubuntu」にチェックを入れましょう。
その後、右下のApply & Restartをクリックします。
これでWSLからDocker Desktopを利用することができるようになります。
利用可になったかを確認する為、Ubuntuのウィンドウで以下のコマンドを実行します。

docker --version

Dockerのバージョンが表示されればOKです。

メモリ使用上限を設定する

現在のままだとメモリの使用上限を設定していない為、
利用中に『Vemmem』というプロセスが大量のメモリを使ってしまう事になります。
それを防ぐ為に以下のようにC:\Users\ユーザー名\の配下に「.wslconfig」という設定ファイルを作成し、以下の内容を書き込みます。
※memory, swap共に設定値は適切な値に適宜変更してください。

[wsl2]
memory=3GB
swap=5GB

設定を適用させる為、以下のコマンドをPowerShellで実行してWSLを再起動します。

# 停止
wsl --shutdown
# 再度起動する場合はWindows左下の検索窓に『Ubuntu』と入力し見つかったものをクリック。

Ubuntuが立ち上がったら以下のコマンドを実行して確認します。

free -h 

MemとSwapそれぞれが設定した値になっていればOKです。

WSL2の確認とWindows Terminalの導入

今度はWSL2が正しく設定されているかを確認します。
PowerShellを開いて以下のコマンドを実行します。

wsl -l -v

以下の様にVERSIONの列が「2」であればOKです。

WSL側(Ubuntu)、Windows側(PowerShell)をそれぞれ開くのは手間なので
マイクロソフト製の端末エミュレータ『Windows Terminal』の導入をオススメします。
以下から入手できます。
https://www.microsoft.com/ja-jp/p/windows-terminal/9n0dx20hk701?activetab

事前にWindows Terminalをインストールしている場合は、以下のようにタブ管理になり、Ubuntuも自動的に追加されます。

事前にインストールをしていない場合は以下の手順で追加可能です。
まずPowerShellを開き

[guid]::NewGuid()

と打ち込む事でGUID(Globally Unique Identifier)を生成します。
Windows terminalを開き、『設定』 → 『JSONファイルを開く』を選択し、jsonファイルに先程生成したGUIDを以下のように追記する事でUbuntoがタブに追加されます。

ソースコードをWSL側に移動する

既存のソースコードがWindows側にある場合、利用可能ですが動作が非常に重くなります。
その為、Ubuntuのタブを開き、以下のコマンドを実行しWindows側のソースコードをWSL側に移動します。

WindowsのCドライブが/mnt/cにマウントされているので以下のようにファイルを移動できます。

cd ~ && mv /mnt/c/Users/ユーザー名/ソース ./任意の場所/

あとはUbuntu側のコマンドラインで通常通りdockerを起動すれば利用可能です。

\ ログインしなくても検討機能が使える♪ /
Dockerの案件を見てみる

まとめ

いかがだったでしょうか。
WSL2は簡単に始められる上に、本物のLinuxカーネルが動作しているのも嬉しいですね。
WindowsPCは比較的安価な物も多いので、自宅での学習用などに用いるにも便利です。
ぜひお試しください。