初めに
本記事は、Windows版のDockerをインストールする前に確認してほしいこと(システム要件の確認)について記載しています。まぁ、本来は何かをインストールする際にそれが自身の環境で動く要件を満たしているか確認するのは当たり前のことですがこの記事の投稿者はそれをしてなかったみたいなので・・・。
事の発端
以前、Windows版のDockerのインストール方法についての記事を書きました。その記事では、「WSL2」と「Docker Desktop for Windows」のインストールを行う方法と動作確認としてJavaとGradleをの開発環境の構築を行ってみるという記事の内容でした。
記事書くときは実際に同じ操作を実施しながら記事を記載しています。なので、「WSL2」と「Docker Desktop for Windows」のインストールから実施していました。インストールはスムーズに行えたのですが、動作確認でDockerを実行した際に問題が起きました。それは「パソコンの動作が重くなってしまう」ということです。結論その原因は「 システム要件を満たしていない」ことが原因でした。本来事前に「システム要件の確認」をしておけばよかったのですが、自分はそれをせずにパソコンの初期化まで行っていたので、みなさんもまずは「システム要件の確認」を忘れないようにしてください。
ちなみに下記はDockerのインストール方法をする記事です。興味があればご覧ください。
本題(Dockerをインストールするのに必要な要件)
まずは、公式のシステム要件を確認してください。
今回自分は「WSL2」を使用した方法を行っているので「WSL2」のシステム要件について記載します。
・Windows 11 64 ビット: Home または Pro バージョン 21H2 またはそれ以降。 あるいは Enterprise または Education バージョン 21H2 またはそれ以降。
・Windows 10 64 ビット: Home または Pro 2004 (build 19041) またはそれ以降、 Enterprise または Education 1909 (build 18363) またはそれ以降。
・Windows における WSL 2 機能の有効化。 詳しくは Microsoft のドキュメント を参照してください。
・Windows 10 上、または Windows 11 上の WSL 2 を正常に実行するには、以下のハードウェア要件を満たす必要があります。
・第 2 レベルのアドレス変換(Second Level Address Translation; SLAT)に対応した 64 ビットプロセッサー。
・4 GB のシステム RAM
・BIOS 設定において BIOS レベルのハードウェア仮想化サポートが有効であること。 詳しくは 仮想化機能 を参照してください。
・Linux カーネルアップデートパッケージ のダウンロードとインストール。
No | 確認項目 |
---|---|
1 | OSビルド |
2 | WSL2機能の有効化 |
3 | WSL2のシステム要件 |
4 | Linuxカーネルのアップデート |
1:OSビルド
まず、最初の2行は、OSビルドのバージョンについて聞かれています。
・Windows 11 64 ビット: Home または Pro バージョン 21H2 またはそれ以降。 あるいは Enterprise または Education バージョン 21H2 またはそれ以降。
・Windows 10 64 ビット: Home または Pro 2004 (build 19041) またはそれ以降、 Enterprise または Education 1909 (build 18363) またはそれ以降。
OSビルドの確認方法は、「設定」⇒「システム」⇒「詳細情報」の「Windowsの仕様」で確認できます。
「設定」
「システム」
「詳細情報」
「Windowsの仕様」
または、「コマンドプロンプトやPowerShell」で次のコマンドを実行してください。
systeminfo
以下は実行結果の抜粋です。
ホスト名: DESKTOP-C9JJTM0
OS 名: Microsoft Windows 10 Pro
OS バージョン: 10.0.19044 N/A ビルド 19044
OS 製造元: Microsoft Corporation
OS 構成: スタンドアロン ワークステーション
OS ビルドの種類: Multiprocessor Free
...省略
筆者が現在使用しているPCは、以下の「OSビルド」なのでシステム要件を満たしていると言えます。
※ちなみに、インストール方法の記事を書いたときに動かしているパソコンとは違います。
# 設定画面の場合
エディション Windows 10 Pro
OSビルド 19044.1826
# コマンドプロンプト/PowerShellの場合
OS 名: Microsoft Windows 10 Pro
OS バージョン: 10.0.19044 N/A ビルド 19044
2:WSL2機能の有効化
これは、そもそも「WSL2」が使用できるかという意味なのでインストールが行われていればOKです。
Windows における WSL 2 機能の有効化。 詳しくは Microsoft のドキュメント を参照してください。
3:WSL2のシステム要件
WSL2機能の有効化ではインストールできればOKと記載しましたが、「WSL2」自体の「システム要件」がございます。
・Windows 10 上、または Windows 11 上の WSL 2 を正常に実行するには、以下のハードウェア要件を満たす必要があります。
・第 2 レベルのアドレス変換(Second Level Address Translation; SLAT)に対応した 64 ビットプロセッサー。
・4 GB のシステム RAM
・BIOS 設定において BIOS レベルのハードウェア仮想化サポートが有効であること。 詳しくは 仮想化機能 を参照してください。
SLATに対応しているか
まずは、SLATに対応しているかどうかについてです。
・第 2 レベルのアドレス変換(Second Level Address Translation; SLAT)に対応した 64 ビットプロセッサー。
そもそもSLATがよくわからないというかたもいるでしょう。
上記の記事を見るとあります。
“SLAT(Second Level Address Translation)”とは、ゲストOSとホストOSの間で行われる物理メモリの
アドレス変換をハードウェアによって行う仮想化支援機能の一種。
まぁ、仮想化機能を効率よく行ってくれるものと思っても問題ないと思います。
「SLAT」に対応しているとは「Hyper-V」と呼ばれるものが動かせれば「SLAT」に対応しているということになります。以下のWikipediaの記事を見るとその意味がわかります。
(英文)
Hyper-V for Windows Server 2008 R2, Windows 8 and later.[13] The Windows 8 (and later Microsoft Windows) Hyper-V actually requires SLAT.[14][15]
(和訳(Google翻訳))
Hyper-V for Windows Server 2008 R2、Windows8以降。Windows 8(およびそれ以降のMicrosoft Windows)Hyper-Vには、実際にはSLATが必要です。
つまり、「Hyper-V」が使えれば、それは「SLAT」に対応しているという意味にもなります。
では、「Hyper-V」が使えるかどうかを確認する方法についてです。
「コントロールパネル」⇒「プログラム」⇒ 「プログラム機能」の「Windowsの機能の有効化または無効化_」⇒ ここに「Hyper-V」があるかどうか
「コントロールパネル」
「プログラム」の「Windowsの機能の有効化または無効化_」
「プログラム機能」
ここに「Hyper-V」があるかどうか。
上記を見るとチェックはついていませんがこのPCで「Hyper-V」が動かせるので、必然的に「SLAT」に対応していると言えます。
コントロール パネル: [Windows の機能の有効化または無効化] に Hyper-V ではなく
Windows ハイパーバイザー プラットフォームが表示される場合、
お使いのシステムは Hyper-V との互換性がない可能性があります。
その場合、上記の要件をクロスチェックしてください。
既存の Hyper-V ホストで systeminfo を実行すると、
Hyper-V の要件セクションでは、次の情報を読み取ります。
※上記の「最終確認」の注意事項を見ると「Windows ハイパーバイザー」が表示されている場合は「Hyper-V」との互換性がないとあるので「SLAT」に対応していない可能性があります。ちなみに、インストールの記事で使用したPCには「Hyper-V」はなく、「Windows ハイパーバイザー」ありました。(これが原因?)
PCにメモリが4GB以上搭載しているかどうか。
次は簡単です。使用するPCにメモリが4GB以上搭載しているかどうかです。
・4 GB のシステム RAM
確認方法はOSビルドと同じ方法で確認できます。
「コマンドプロンプト」または「PowerShell」で実行
systeminfo
...省略
物理メモリの合計: 16,301 MB
利用できる物理メモリ: 5,043 MB
仮想メモリ: 最大サイズ: 27,012 MB
仮想メモリ: 利用可能: 4,458 MB
仮想メモリ: 使用中: 22,554 MB
...省略
上記を見ると16GBあるので対応してると言えます。
※ちなみに、インストールの記事で使用したPCのメモリ搭載容量は4GBでした。システム要件範囲内のものですが実際にDockerを実行したりするとメモリの使用率が100%に近いものとなっていました。なのでDockerやその他のアプリやプログラムを動かすことを考えると「最低でも8GB」は必要なのかもしれません。
仮想化が有効かどうか
最後に「仮想化が有効かどうか」についてです。
・BIOS 設定において BIOS レベルのハードウェア仮想化サポートが有効であること。 詳しくは 仮想化機能 を参照してください。
SLATに対応しているかで確認したときのように以下の項目について確認してください。
Virtual Machine Platform <==> 仮想マシンプラットフォーム。
Windows Subsystem for Linux。 <==> Linux用Windowsサブシステム
Windows 起動時のハイパーバイザー有効化。<==> Hyper-V
タスクマネージャーのパフォーマンスタブで「仮想化が有効かどうか」について確認します。
仮想化技術の有効化
「Ctrl + Shift + Esc」でタスクマネージャーを開いてください。
「パフォーマンス」タブをクリックし「仮想化」が「有効」になっていることを確認してください。
4:Linuxカーネルのアップデート
最新のインストール方法だとおそらく設定不要だと思うので割愛します。
・Linux カーネルアップデートパッケージ のダウンロードとインストール。
これで、システム要件で確認することはすべてです。
最後に
「システム要件の確認」は忘れないようにしてください!
以上、何かの参考になれば・・・。