🤖

BootCamp上のWindowsにWSL2のDocker環境を構築する

2022/10/11に公開

はじめに

私物のWindows(on BootCamp)にDocker環境を整えようと思い調べていると、Docker Desktopが有料化するとの記事を発見。

Docker is Updating and Extending Our Product Subscriptions

個人での利用は引き続き無料のようなので普通に使えますが、
せっかくなのでDocker Desktopを利用せずにDocker環境構築をやってみることにしました。

環境

今回Docker環境を構築する環境は以下です。
純粋なWindowsPCではなく、MacでBootCampを使ってWindowsを動かしてます。

  • Windows 10(on BootCamp)

手順

Windows Terminalのインストール

コマンドを色々打つためにはWindows Terminalが便利とのことだったので、インストールしました。
以下リンクから、Microsoft Store経由でインストールできます。

Windows Terminal

CPUの仮想化支援機能の有効化

WSL2やDockerの利用には、CPUの仮想化支援機能の有効化が必要のようです。

確認

有効になっているかどうかは、「タスクマネージャー」→「パフォーマンス」→「仮想化」で確認できます。

上記のように「有効」になっていればOKです。

有効化

BootCamp環境では無効になっていることが多いらしく、その場合は以下URLのように再起動を行えば有効になります。

BootcampでCPUの仮想化を有効にする

  1. optionボタンを押しながらPCを再起動する
  2. mac OSを起動する
  3. 「システムの環境設定」 -> 「起動ディスク」からBootcampを選択し「再起動」する

WSL2およびUbuntuのインストール

Windows Terminalを管理者で開く

「Windowsボタン」→「ターミナルを右クリック」→「その他」→「管理者として実行」で開きます。

WSLのインストール

wsl --install

※上記コマンドだと、デフォルトのUbuntuがインストールされる。

完了後、再起動を要求されるので再起動する。
ただし、再起動するとせっかくCPUの仮想化支援機能の有効化で有効にしたCPU仮想化支援機能が無効に戻ってしまう。。
なので、再起動時はCPUの仮想化支援機能の有効化の手順を再度実施すること。

Ubuntuのセットアップ

再起動を実施すると、起動時に色々Ubuntuをインストールしている画面が表示される。

処理が完了すると以下の画面が表示されるので、指示の通りユーザ名とパスワードを設定する。
ここでの注意点は以下の通り。

Linux のユーザー名とパスワードを設定する

  • このユーザー名およびパスワードは、インストールする Linux ディストリビューションごとに固有であり、Windows ユーザー名とは関係ありません。
  • パスワードを入力すると、画面に何も表示されませんのでご注意ください。 これはブラインドタイピングと呼ばれます。 入力している内容は表示されません。これは完全に正常です。
  • ユーザーがユーザー名およびパスワードを作成すると、そのアカウントがディストリビューションの既定のユーザーとなり、起動時に自動的にサインインされます。
  • このアカウントは、Linux 管理者と見なされ、sudo (Super User Do) 管理コマンドを実行できます。
  • WSL で実行されている各 Linux ディストリビューションには、独自の Linux ユーザー アカウントとパスワードがあります。 ディストリビューションの追加、再インストール、再設定を行うたびに、Linux ユーザー アカウントを構成する必要があります。

Dockerのセットアップ

準備したUbuntu環境にDockerのインストールを行う。
Windows Terminalを開き、「上部の v ボタン」→「Ubuntu」をクリックする。
(先ほどユーザ名を設定したUbuntuのコンソールを再利用してもよい)

後は公式の手順通りdockerのインストールを行っていく。
Install Docker Engine on Ubuntu

リポジトリのセットアップ
sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker Engineのインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo service docker start
Docker Engineの動作確認
sudo docker run hello-world

以下の通りコンソールにメッセージがでればOK。

任意のユーザをdockerグループに追加

dockerコマンドを実行するためにはdockerグループに所属する必要があるので、
普段利用するユーザ(WSL2のUbuntu)をdockerグループに追加しておく。

sudo usermod -aG docker 【ユーザ名】

参考

Discussion