本記事は、「Windows Home」でのDocker for Windowsの導入方法の紹介が主目的です。本記事でDockerを導入した後、別記事で後編として「AutoMuteUs」の導入方法を紹介します。また、「AutoMuteUs」の利用に限らず、Docker for Windowsの導入の際にお役立てください。尚、本記事と後編の別記事を合わせて"本連載記事"と呼ぶものとします。
はじめに
皆様、AmongUsは楽しんでいるでしょうか。2021年6月15日ついに最大15人プレイになり、新色が追加されましたね!Discordを使って議論を進める方も多いとは思いますが、AutoMuteUsなどのミュートBotを利用している方も多いのではないでしょうか。

(AmongUsCaptureの起動時に表示されるAutoMuteUsのロゴ画像)
アップデートに伴い、今までセルフホストして利用していたAutoMuteUsが利用できなくなった方もおられると思います。かくいう私も利用できなくなり、みんなに30分待たせた上にその日は使えなかったというミスを犯しました。
本記事初稿時点で、同様にアップデートに伴った変更による記事「Windows10で最新版AutomuteUsをセルフホストする(2021/6/21時点) - Qiita」が存在していますが、本連載記事ではより大衆向け、つまりDockerなどの関連技術が1ミリもわからない方も対象にしています。そのため本連載記事では極力、次の画像のようなCUI(いわゆる"黒い画面")を使わず、可能な限りGUIで進められるような手順を取ります。

(いわゆる"黒い画面"。これを操作することに怖い印象を持つ方も多いだろうから、本連載記事では極力配慮する)
また、他の同様の記事ではDiscord Botの導入時にBotに「管理者権限」を付与するという危険な行為を紹介していたり、Botのオプションに関して詳細な解説が無かったりしていたため、関連技術が多少わかる方も本連載記事の対象としています。
ただ、私自身も完全に理解できているわけではないのでその際はコメントでご指摘ください。
尚、本連載記事では、以下の順番で解説していきます。
1. Docker for Windowsの導入
2. Discord Botの準備
3. AutoMuteUsの導入と運用
Docker for Windowsの導入手順が長いので、これらのうち 2) 以降は別の記事に分割します。続きはこちら→WindowsPC1台でAutoMuteUsをセルフホスティング~後編:AutoMuteUsの導入と運用~【AmongUs】 - Qiita
動作環境
本連載記事では、WSL2というシステムを利用するるため、残念ながらWindows7/8/8.1以前では利用できません。
一般的な Windows10 PCにインストールされているWindows 10 Homeの場合、
- バージョン
1903かつ ビルド18362.1049以降 - バージョン
1909かつ ビルド18363.1049以降 - バージョン
2004以降
のいずれかが必要です。Windowsのバージョンはタスクバー左下のWindowsマークを右クリック→設定→システム→バージョン情報を開き、

下にスクロールして「Windowsの仕様」から次のように確認できます。

この私の環境を例に挙げると、Windows 10 Homeのバージョン2004、ビルド19041.1052となります。"バージョン2004以降"の条件を満たしているため、利用可能です。
(わかる方向け:本記事では紹介しませんが、Windows Proなど最初からHyper-Vが利用可能な環境では手順が異なるようです。)
また、本連載記事では 64bit OS かつIntel または AMD の プロセッサ(CPU) を対象とします。先程 Windowsバージョンを確認した場所の上にある「デバイスの仕様」から次のように確認できます。

デバイス名/IDは伏せています。プロセッサのところが Intel もしくは AMD で、システムの種類が 64 ビット で、それぞれ始まっていることを確認してください。この私の環境では Intel(R) Core(TM) i5-9600K とあるのでIntel の CPU 、また 64bit OS です。
尚、多くのWindows PCでは上記「システムの種類」でx64 ベース プロセッサになっているかと思われますが、ここがもし ARM ベース プロセッサ の場合、本記事ではサポートしませんので予めご了承ください。
1. Docker for Windowsの導入
以下では、上記動作環境を満たしていることが確認されたものとして進めます。尚、すでにDocker for Windowsの導入が終わっている方は 2) Discord Botの準備(別記事) に進んでください。
1.1. WSL2の導入
1.1.1. 「仮想化支援機能」の有効化
まずはじめに、「仮想化支援機能」というものが有効化されているかどうか確認します。なお、この機能がサポートされていないCPUでは、本記事の手法が利用できません。
タスクバー左下のWindowsマークを右クリック→タスクマネージャーを開き、上の方のタブから「パフォーマンス」を選択した後、左に「CPU」「メモリ」……と並ぶ中から「CPU」を選択すると以下のような画面が表示されます。

この右下の方の「仮想化」という項目が 有効 になっていた場合、次の 1.1.2) に進んでください。
無効になっていた場合は有効化する必要があります。
「そもそもこんな画面しか出ないんだけど?!」

という方、落ち着いてください。左下の「詳細(D)」を押して上記手順を行ってください。
無効になっていた場合の有効化手順ですが、こればっかりは「BIOS」という画面で設定しなくてはなりません。BIOS設定は下手に触ると最悪PCが起動しなくなる恐れがあるので慎重に行ってください。
(わかる方向け:厳密には、OSが立ち上がらなくなる恐れ、ですかね。BIOSは起動できると思います。知らんけど)
BIOSはPCメーカーやマザーボードによって操作が異なります。例えば、私の環境では次のように「仮想化支援機能」を有効化します。

何やら難しそうな画面ですよね。ええ、未だに私も慣れません。本記事作成にあたってキャプチャボードでBIOS画面を録画したのですが、びくびくしながら操作していました。単体録画が可能な機種AVerMedia製AVT-C878 PLUSを使用しました。キャプチャボードはやっぱり安心と信頼のAVerMedia(※本記事はAVerMediaさんからの案件ではありません)。
こちらの記事 にあるような手順で設定が可能です。本筋ではないためこちらの方の記事を見るか、「(PCのブランドやメーカー名)」を入れて、「BIOS 設定」「仮想化支援 有効化」などでググってみてください。(※自作PCの方などはマザーボードのメーカーで…というか自作erの方ならBIOSはわかりますよね)
以下に私が試した例を貼ります。これは Intel CPU の場合ですが、AMD CPU の方はこちらも参考にしてください
Qiita記事用「仮想化支援機能を有効化する手順」
— ゆくどり🦈❤🐰❤|🐱💙|🐱🎤🎨|🥕 (@durian3960) June 23, 2021
※BIOS設定を開く際はPC起動時のF2やDelete連打で入っても大丈夫です
参考:https://t.co/ec586KdeBAhttps://t.co/iOF0DBlMXohttps://t.co/nPguqJ7kXo pic.twitter.com/d7Sx4BITdR
1.1.2. WSLに関連する機能の有効化
以下のように、タスクバー左下の検索バーに「Windowsの」と入力します。

「Windows の機能の有効化または無効化 コントロールパネル」(画像の明るい青背景の部分)というのが出るかと思うのでクリックして開きます。
以下のようなウインドウが開くと思うので、次のように「Linux 用 Windows サブシステム」と「仮想マシン プラットフォーム」を探してどちらもチェックを入れます。


見つけたらそれぞれの最左の □ にチェックを入れます(画像はチェックが入った状態です)。
(わかる方向け:本記事ではサポートしませんが、Docker以外に仮想マシンなどを動かす予定のある方はこちらの記事も読んでみてください)
全てにチェックが入ったら、OKをクリックして、完了するのを待ちます。私の環境では再現できませんでしたが、もし「再起動」を求められたら再起動をお願いします。

変更が終わるとこのようになりますが、PCを「再起動」するまで変更は完了しません。先程の過程で「再起動」が求められなくても、タスクバー左下Windowsマークを右クリック→「シャットダウンまたはサインアウト」→「再起動」を押して再起動してください。
1.1.3. WSL2のダウンロードとインストール
再起動は終わりましたか?おかえりなさい。それでは、これからWSL2をインストールしていきます。ここで、動作環境のところでx64 ベース プロセッサであったか確認しておいてください。ARM ベース プロセッサの場合はダウンロードするファイルが異なります。
(わかる方向け:本記事ではサポートしませんが、ARM用のファイルも以下でx64用のファイルをDLするリンク先に書いてあります)
まず、こちらのページを開きます。

上記のようなページが出るかと思うので、「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」をクリックして「wsl_update_x64.msi」をダウンロードしてください。終わればそれを開いてインストールを完了させてください。
ここで、管理者権限のアクセス許可が求められます。「管理者権限がない」「パスワードの入力」などが表示されてわからない場合は今使っているPCの管理者(家族共有のPC等の場合は、持ち主など)に聞いてください。本記事ではサポートできません。1人で利用してる場合は基本何も言われないはずです。
インストールが完了したら、WSL2をデフォルトで利用できるように設定します。ごめんなさい。この手順ではCUIを使う必要があるみたいです。タスクバー左下のWindowsマークを右クリック→「Windows PowerShell(管理者)」を開いてください。必ず「(管理者)」と付いてる方を選んでください。先程同様に管理者権限のアクセス許可が求められるので「はい」を押します。

このようなPowerShellの画面が出ましたか?
では次に、以下の1文をコピーしてください。
wsl --set-default-version 2
PowerShellの画面に戻り、右クリックしてください。次のように、コピーしたものが「貼り付け」されると思います。

貼り付けできたら、「Enter」キーを押下します。しばらく待つと、次のような画面になり設定が完了します。

これにて設定は完了です。ここで失敗する場合、WSL2のインストールや設定がきちんとできていない可能性があります。今一度本記事の手順を確認してください。
1.1.4. Ubuntuのインストール
それでは、ここから「Ubuntu」というものをインストールします。
(わかる方向け:ここまでの手順で、Windows上でLinuxを動かす準備が完了しています。WSL2では、Linuxの完全な動作がサポートされています)
Microsoft Storeを起動してください。Windowsのデフォルト設定では、以下のようなアイコンがタスクバーに固定されているのでクリックして開いてください。

見当たらない場合は、次のようにタスクバー左下の検索バーで「MicrosoftStore」などと入力して開いてみてください。

Microsoft Storeを起動できたら、右上の「検索」をクリックし出てきた入力欄に「ubuntu」と入力します。

入力欄のすぐ下に出てきたリストの中から「Ubuntu」をクリックします。
(わかる方向け:インストールしたい決まったバージョンがあるならUbuntu XX.XX LTSを選んでください。UbuntuではMicrosoftオススメのバージョンが勝手に適用されます)
次のような画面が開くと思うので、「入手」をクリックします。

Microsoftアカウントへのサインインが求められることがあります。サインインしてもしなくてもインストールは可能なので好きな方を選んでください。
その後、「インストール」を押すか、押さなくてもしばらく待つと勝手にダウンロードが始まります。

待ちます。暇ならお茶でも飲みながらゆっくりしていてください。

インストールが終わり、このような画面になったら「起動」をクリックします。
「インストール中です、これには数分かかります」という英語のメッセージと共に次のような画面が開くので、しばらく待ちます。時間がかかりそうならお茶菓子に桜餅でもどうぞ。

インストールが完了すると、次のような画面になります。

今後、Ubuntuを利用する際に必要なユーザー名とパスワードを設定します。文字数など特に制限はありませんが、基本的には半角英数字(大文字または小文字も可)で設定するといいでしょう。決めたら、紙に控えるなど忘れないようにしてください。
(わかる方向け:この手順で設定するパスワードは、root権限、つまりWindowsでの管理者権限に相当するものが必要なsudoコマンド等を利用する際に必要なパスワードになります)
Enter new UNIX username:
この行にカーソルがあると思うので、ユーザー名を入力します。終わったら、Enterキーを押します。
New password:
これが出てきたら、パスワードを入力します。セキュリティの観点から、入力しても画面では何も表示されませんので注意してください。実際には入力できています。入力が終われば「Enter」を押します。
Retype new password:
次に、さっきのパスワードを再度入力します。終われば「Enter」を押します。
入力したパスワードに問題がなければ、以下のような文で始まるメッセージが表示されます。再入力したパスワードと一致しない場合はその旨のメッセージが表示されるので、再度パスワードの入力→再入力を行います。
passwd: password updated successfully
Installation successful!
Installation successful! が表示され、
(※ユーザー名)@(※PCの名前):~$
(上記の※以下は環境によって異なります)
が最下行に表示されれば、Ubuntuのインストールが完了しました!おめでとう!
「Ubuntu」のウインドウ右上の「×」をクリックしUbuntuを閉じます。
(わかる方向け:公式の手順では、Windows ターミナルのインストールが推奨されています。省略可能ですが、同時にPowerShellとUbuntuなどのLinuxのように複数利用する人は便利なので公式の手順に従いMicrosoft Storeからインストールしてみてください)
1.2. Docker for Windowsのインストール
これで、Docker for Windowsを利用するための準備が整いました。ここまで来れば、あと少しです。
こちらのページを開きます。

今後サイトのデザインが変わる可能性はありますが、「Download for Windows」をクリックして「Docker Desktop Installer.exe」をダウンロードします(※必ずWindows版を選んでください)。
ダウンロードしたら、そのファイルを開いてください。Dockerのインストールが始まります。

途中で次のような画面が出てきます。基本的には大丈夫なはずですが、もし「Install required Windows components for WSL 2」にチェックが入って無ければ必ずチェックを入れてください。

チェックがあるのを確認したら、「Ok」をクリックします。
(わかる方向け:Hyper-Vが利用可能な環境では「Enable Hyper-V Windows Features」という項目も出るのを確認しました。デフォルトの通りチェックが入ったままで大丈夫です)
インストールが再開します。

完了すると、次のような画面になるので「Close」を押します。

早速、Dockerを起動してみましょう!
先程のインストール時に設定を触っていなければデスクトップに起動アイコンが出ているはずなのでそこから起動します。もしくはタスクバー左下の検索バーで「Docker」と入力し Docker Desktop を起動します。
Docker Desktopを初めて起動した場合、以下のようなチュートリアルを求められますが、本記事では取り扱わないため、「AutoMuteUs」を利用するためだけの人は下の「Skip tutorial」をクリックし飛ばしてください。
(わかる方向け:今後もDockerを使う予定のある方は英語ですがチュートリアルをやってみてください。本記事ではサポートしませんが。もしここでスキップしても公式ドキュメントからやはり英語ですが Tutorial is available)

起動が終わったら最後に、Dockerの設定を確認します。右上の方の「Upgrade」の一つ右、歯車マークを押すと設定が開きます。

ここで「Use the WSL 2 based engine」にチェックが入っていることを確認します。とはいえ、Windows Homeではこの画像のように(Windows Home can only run the WSL 2 backend)と表示されチェックは外せないと思いますが。
その他の主要な設定
- Start Docker when you log in
- チェックを入れると、Windowsの起動時に自動的にDockerを起動します。
- Expose daemon on tcp://localhost:2375 without TLS
- セキュリティ的な問題が生じるためチェックを入れないでください
- Send usage statistics
- チェックを入れると、アプリケーションの改善などのためにDockerの運営に利用情報を送信します。
- Open Docker Desktop dashboard at startup
- チェックを入れると、Docker Desktopの起動時にダッシュボード(※今、設定するために開いている画面)を起動します。
補足:
説明を省略した箇所は公式ドキュメント(英語)を見てください。ダッシュボードは開いていなくても、バックグラウンドで動作し続けます。
「×」を押して画面を閉じても、タスクトレイ(※わからなければググってください)に格納されバックグラウンドで動作し続けます。Dockerを完全に終了するには、タスクトレイのアイコンを右クリックして出るメニューからQuit Docker Desktopをクリックします。
閑話
お疲れさまでした。これにてDockerをWindowsPCで利用する手順が整いました!次回からいよいよDiscord Botの導入とAutoMuteUsを動かします。本記事の執筆で大変疲れたので、私はアニメ版「スライム倒して300年、知らないうちにレベルMAXになってました」でも見て癒やされようと思います(※もちろん本記事は案件ではありません。)。
ちなみにこの作品は、過労死した元社畜がいわゆる"転生ボーナス"で不老不死の能力を得て300年スライムを倒していたらいつの間にかレベルMAXになっていた魔女、アズサとその愉快な仲間たちが繰り広げるのんびりスローライフな物語です。主要キャラは全て女性、アニメあるあるなシリアス展開もなく終始癒やされる内容です。
ニコニコ動画やABEMA、Primeビデオなどで見られるので是非。その他の放送/配信情報は公式サイトで。
次回に続く
続きはこちら→WindowsPC1台でAutoMuteUsをセルフホスティング~後編:AutoMuteUsの導入と運用~【AmongUs】 - Qiita
参考文献
参考にさせていただいたQiita記事
Windows 10 Home で WSL 2 + Docker を使う - Qiita
Windows 10でLinuxを使う(WSL2) - Qiita
WSL2をインストールして使うときの注意点 - Qiita
その他サイト様
2020 年 8 月 20 日 - KB4566116 (OS ビルド18362.1049 および 18363.1049) プレビュー
[マザーボード] AMD Virtualization (AMD-V™)をBIOSで有効にする方法 | サポート 公式 | ASUS 日本
Virtualization Technology (VT-X)を有効にするには - Lenovo Support IT
WSL 2(Windows Subsystem for Linux 2)の違いとインストール方法 | パソコン工房 NEXMAG
Windows 10 に WSL をインストールする | Microsoft Docs