Docker Desktopの更新後、WSLエラーが発生する問題の解決方法
Docker Desktopをアップデートした後、WSL2関連の操作で「予期せぬエラー」が発生することがあります。この問題は、WSLディストリビューションが正しく認識されないことが原因であることが多いです。以下に、このエラーの解決手順を説明します。
エラーメッセージの例
発生するエラーメッセージは以下のような内容です。
An unexpected error was encountered while executing a WSL command. Common causes include access rights issues, which occur after waking the computer or not being connected to your domain/active directory. Please try shutting WSL down (wsl --shutdown) and/or rebooting your computer. If not sufficient, WSL may need to be reinstalled fully. As a last resort, try to uninstall/reinstall Docker Desktop. If the issue persists please collect diagnostics and submit an issue (https://docs.docker.com/desktop/troubleshoot/overview/#diagnose-from-the-terminal).
問題の診断
まず、DockerクライアントとWSLの状態を確認します。
Dockerクライアントのバージョン確認
Dockerが正しくインストールされているか確認します。
docker version
Client:
Cloud integration: v1.0.35+desktop.10
Version: 25.0.3
API version: 1.44
Go version: go1.21.6
Git commit: 4debf41
Built: Tue Feb 6 21:13:02 2024
OS/Arch: windows/amd64
Context: default
Server: Docker Desktop 4.27.2 (137060)
Engine:
Version: 25.0.3
API version: 1.44 (minimum version 1.24)
Go version: go1.21.6
Git commit: f417435
Built: Tue Feb 6 21:14:25 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.28
GitCommit: ae07eda36dd25f8a1b98dfbf587313b99c0190bb
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e94
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker info
Client:
Version: 25.0.3
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.12.1-desktop.4
Path: C:\Program Files\Docker\cli-plugins\docker-buildx.exe
compose: Docker Compose (Docker Inc.)
Version: v2.24.5-desktop.1
Path: C:\Program Files\Docker\cli-plugins\docker-compose.exe
debug: Get a shell into any image or container. (Docker Inc.)
Version: 0.0.24
Path: C:\Program Files\Docker\cli-plugins\docker-debug.exe
dev: Docker Dev Environments (Docker Inc.)
Version: v0.1.0
Path: C:\Program Files\Docker\cli-plugins\docker-dev.exe
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.21
Path: C:\Program Files\Docker\cli-plugins\docker-extension.exe
feedback: Provide feedback, right in your terminal! (Docker Inc.)
Version: v1.0.4
Path: C:\Program Files\Docker\cli-plugins\docker-feedback.exe
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v1.0.0
Path: C:\Program Files\Docker\cli-plugins\docker-init.exe
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: C:\Program Files\Docker\cli-plugins\docker-sbom.exe
scout: Docker Scout (Docker Inc.)
Version: v1.4.1
Path: C:\Program Files\Docker\cli-plugins\docker-scout.exe
WSLの状態確認
次に、WSLディストリビューションの状態を確認します。
wsl -l -v --all
NAME STATE VERSION
* docker-desktop-data Stopped 2
docker-desktop Stopped 2
このコマンドは、利用可能なWSLディストリビューションの一覧を表示します。上記の例では、`docker-desktop`と`docker-desktop-data`が停止状態で存在することが確認できます。
wsl --status
デフォルトのディストリビューション: docker-desktop-data
デフォルトのバージョン: 2
WSL 2 カーネルは「wsl --update」で手動で更新できますが、システム設定により自動更新は無効になっています。
自動カーネル更新を受け取るには、Windows の更新設定で「Windows の更新時に他の Microsoft 製品の更新も受け取る」を有効にしてください。
詳細については、https://aka.ms/wsl2kernel をご覧ください。
WSL 2 カーネルファイルが見つかりません。カーネルを更新または復元するには、「wsl --update」を実行してください。
解決策
上記の診断で問題が特定できたら、以下のいずれかの方法で解決を試みます。
1. WSLの自動更新
最も簡単な解決策は、WSLを自動的に更新することです。これにより、WSLカーネルと関連コンポーネントが最新の状態に保たれます。
wsl --update
2. WSLの手動更新
自動更新が機能しない場合や、最新バージョンをインストールしたい場合は、公式リリースページから手動で更新します。
WSLリリースページ: https://github.com/microsoft/WSL/releases