Docker での開発環境を整える。
ここでは Docker Desktop を使う。
Docker Desktop は条件によっては有料になる ので注意。
環境
- Windows 10 Home
- CPU AMD Ryzen 7 3700X 8コア
Docker Desktop をインストールする前にやること
wsl を最新バージョンにする
$ wsl -v
$ wsl --set-default-version 2
$ wsl.exe --update
Window Terminal をインストールする
Microsoft Store からインストールするだけ。
PowerShell をインストールする
Ubuntu をインストールする
仮想化の有効
コンパネの設定
- 左下「スタート」→「Windows システム ツール」→「コントロールパネル」→「プログラム」→「プログラムと機能:Windows の機能の有効化または無効化」クリック
- 「Linux 用 Windows サブシステム」にチェック
- 「仮想マシンプラットフォーム」にチェック
- 「OK」クリック
BIOS から Hyper-V を有効にする
Windows および Windows Server での Hyper-V のシステム要件 - Microsoft Learn には、
Hyper-V は、次のバージョンの Windows で有効にすることができます。
Windows 10 Pro または Enterprise
Windows 11 Pro または Enterprise
と書いてあるが、
Home でも使えるようになったらしい。
もし Hyper-V がインストールされてなければ Hyper-V をインストールする - Microsoft Learn を参照。
- 左下「スタート」→「設定」→「更新とセキュリティ」→「回復」→「PC の起動をカスタマイズする」→「今すぐ再起動」クリック。
以下、自分の環境。(BIOS画面はメーカーやモデルによって違うので)
- 「トラブルシューティング」→「詳細オプション」→「UEFIファームウェアの設定」→「再起動」クリック
- 「詳細」→「CPU Configuration」→「SVM Mode」を Enabled に設定。
- 「終了」→「変更を保存しリセット」→「Ok」クリック
以下、TSUKUMO より。
以下、グーグル先生より。
Hyper-V の BIOS 設定は、通常、PC の起動時に特定のキー (例: Esc, F2, Del) を押してBIOS設定画面に入り、「Advanced」や「CPU Configuration」などの項目で「Virtualization Technology」を有効にすることで行います。
詳細:
- BIOS へのアクセス:
PC の電源を入れ、起動時に特定のキー (Esc, F2, Del, F10 など) を連打してBIOS設定画面に入ります。 - 仮想化設定:
BIOS画面内で、「Advanced」や「CPU Configuration」などの項目を探し、そこに「Virtualization Technology」や「SVM Mode」などの設定項目があるはずです。 - 設定の変更:
仮想化関連の設定を「Enabled」または「オン」に変更します。 - 保存と再起動:
設定を保存し、PCを再起動します。
補足:
BIOSの設定画面は、PCのメーカーやモデルによって異なります。
仮想化技術に対応したCPUが必要です。
Hyper-Vを有効にするには、Windowsの機能でHyper-Vを有効にする必要があります。
仮想化機能を有効にすると、Hyper-Vなどの仮想化ソフトウェアが利用できるようになります。
Hyper-V が有効になっているか確認する
確認その1
- 左下「スタート」→「Windows システム ツール」→「タスクマネージャー」クリック
- 「パフォーマンス」→「CPU」→「仮想化」が有効になっているか確認する。
- 有効になっていない場合
- 仮想化:無効
- Hyper-V サポート:はい
- 有効になっていない場合
- 「パフォーマンス」→「CPU」→「仮想化」が有効になっているか確認する。
確認その2
- 左下検索バーに「msinfo32.exe」と入力し実行。もしくは、左下「スタート」→「Windows 管理ツール」→「システム情報」クリック
- 項目最下部に「ハイパーバイザーが検出されました。」と書いてあるか確認する。
- 検出されない場合は項目最下部が下記のような感じになっている
- Hyper-V - VM モニターモード拡張機能:はい
- Hyper-V - 第2 レベル アドレス変換拡張機能:はい
- Hyper-V - ファームウェアで仮想化が有効:いいえ
- Hyper-V - データ実行防止:はい
- 検出されない場合は項目最下部が下記のような感じになっている
- 項目最下部に「ハイパーバイザーが検出されました。」と書いてあるか確認する。
Docker Desktop をインストールする
Microsoft Store からのインストールを試してみたけど、
失敗したので、 exe ファイルを普通にダウンロードすることにした。
ダウンロードは Install Docker Desktop on Windows - Docker Docs から。
「Docker Desktop for Windows - x86_64」クリック
インストールが完了すると、
PCの再起動をする必要がある。
システム要件
Windows に Docker Desktop をインストール - Docker-docs-ja を参照。
Docker Desktop の設定変更
- 「Settings」→「Resource」→「WSL integration」→「Enable integration with my default WSL distro」にチェック
- 「Ubuntu」をオン
- 「Apply & restart」クリック
確認
$ docker -v
$ wsl -l -v
NAME STATE VERSION
* docker-desktop Running 2
Ubuntu Running 2
Ubuntu が Running になってなければ、下記記事参考。
エラーが起きた
Docker コマンドは使えるようになったけど、
Docker Desktop で以下エラーが出て Docker が使えない場合。
deploying WSL2 distributions
ensuring main distro is deployed: deploying "docker-desktop": importing WSL distro WSL2 は、現在のマシン構成ではサポートされていません。
"仮想マシン プラットフォーム" オプション コンポーネントを有効にし、さらに、BIOS で仮想化を有効にしてください。
"仮想マシン プラットフォーム" を有効にするには、次のコマンドを実行します: wsl.exe --install --no-distribution
詳細については、https://aka.ms/enablevirtualization をご覧ください
エラー コード: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
output="docker-desktop": exit code: 4294967295: running WSL command wsl.exe C:\WINDOWS\System32\wsl.exe --import docker-desktop <HOME>\AppData\Local\Docker\wsl\main C:\Program Files\Docker\Docker\resources\wsl\wsl-bootstrap.tar --version 2: WSL2 は、現在のマシン構成ではサポートされていません。
"仮想マシン プラットフォーム" オプション コンポーネントを有効にし、さらに、BIOS で仮想化を有効にしてください。
"仮想マシン プラットフォーム" を有効にするには、次のコマンドを実行します: wsl.exe --install --no-distribution
詳細については、https://aka.ms/enablevirtualization をご覧ください
エラー コード: Wsl/Service/RegisterDistro/CreateVm/HCS/HCS_E_HYPERV_NOT_INSTALLED
: exit status 0xffffffff
checking if isocache exists: CreateFile \\wsl$\docker-desktop-data\isocache\: The network name cannot be found.
上部「Docker Desktop をインストールする前にやること:仮想化の有効」の項目を見直す。