BootCamp上のWindowsにWSL2のDocker環境を構築する
はじめに
私物の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経由でインストールできます。
CPUの仮想化支援機能の有効化
WSL2やDockerの利用には、CPUの仮想化支援機能の有効化が必要のようです。
確認
有効になっているかどうかは、「タスクマネージャー」→「パフォーマンス」→「仮想化」で確認できます。
上記のように「有効」になっていればOKです。
有効化
BootCamp環境では無効になっていることが多いらしく、その場合は以下URLのように再起動を行えば有効になります。
- optionボタンを押しながらPCを再起動する
- mac OSを起動する
- 「システムの環境設定」 -> 「起動ディスク」からBootcampを選択し「再起動」する
WSL2およびUbuntuのインストール
Windows Terminalを管理者で開く
「Windowsボタン」→「ターミナルを右クリック」→「その他」→「管理者として実行」で開きます。
WSLのインストール
wsl --install
※上記コマンドだと、デフォルトのUbuntuがインストールされる。
完了後、再起動を要求されるので再起動する。
ただし、再起動するとせっかくCPUの仮想化支援機能の有効化で有効にしたCPU仮想化支援機能が無効に戻ってしまう。。
なので、再起動時はCPUの仮想化支援機能の有効化の手順を再度実施すること。
Ubuntuのセットアップ
再起動を実施すると、起動時に色々Ubuntuをインストールしている画面が表示される。
処理が完了すると以下の画面が表示されるので、指示の通りユーザ名とパスワードを設定する。
ここでの注意点は以下の通り。
- このユーザー名およびパスワードは、インストールする 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