Docker Desktop をご利用中の場合、WSL2 上に構築される docker_data.vhdx ファイルは、長期間の運用や大量のコンテナ・イメージの取り扱いにより、容量が大幅に拡大することがあります。この記事では、不要領域を解放して docker_data.vhdx ファイルのサイズを縮小する方法として、Windows 標準の Optimize-VHD コマンドを使用する手順を解説いたします。
1. docker_data.vhdx ファイルの概要
docker_data.vhdx は、Docker Desktop が WSL2 環境上でデータを管理するために利用される仮想ディスクファイルです。
長時間運用する中で、未使用領域が蓄積されることにより、実際のデータ量よりも大きな容量を占有する場合があります。
このような状態を解消するため、Optimize-VHD コマンドを用いて不要な領域を回収することが可能です。
2. 作業前の準備と注意点
2.1 バックアップの取得
最も重要な作業前の準備として、万が一に備え docker_data.vhdx ファイルや関連データのバックアップを必ず取得してください。
※ファイル操作によりデータが破損するリスクを最小限にするため、事前のバックアップは不可欠です。
2.2 必要な権限と環境設定
- 管理者権限の PowerShell
Optimize-VHD コマンドを実行するには、管理者権限で PowerShell を起動してください。 - Hyper-V 機能の有効化
Optimize-VHD は Hyper-V の一部機能となるため、Hyper-V 機能が有効になっていることを確認してください。
2.3 Docker Desktop の完全停止
Docker Desktop やその他の WSL2 を利用するアプリケーションが動作中の場合、仮想ディスクへのアクセスが発生し、正しく最適化が実施できない可能性があります。
そのため、以下の手順で WSL2 を完全に停止させる必要があります。
- Docker Desktop の終了
タスクトレイの Docker アイコンを右クリックし、「終了」を選択、もしくはタスクマネージャーで関連プロセスを確認して終了します。 - WSL2 の停止
管理者権限の PowerShell またはコマンドプロンプトで以下のコマンドを実行してください。wsl --shutdown
3. Optimize-VHD を利用したサイズ縮小手順
手順 1: PowerShell を管理者として起動
- 「スタート」メニューから「Windows PowerShell」を右クリックし、「管理者として実行」を選択します。
手順 2: WSL2 の完全停止の確認
- 前述の通り、
wsl --shutdown
を実行し、WSL2 環境が完全に停止している状態で作業を進めます。
手順 3: Optimize-VHD コマンドの実行
- 以下のコマンドを管理者権限の PowerShell 上で実行してください。
※パスは実際の環境に合わせて変更してください。Optimize-VHD -Path "C:\Users\user\AppData\Local\Docker\wsl\disk\docker_data.vhdx" -Mode Full
- コマンド実行後、不要領域が解放され、ファイルサイズが縮小されることが確認できます。
手順 4: Docker Desktop の再起動
- サイズ縮小処理が完了した後、必要に応じて Docker Desktop を再起動し、通常運用に戻してください。
4. 注意事項と補足情報
- 再拡張の可能性
Docker Desktop や WSL2 は、必要に応じて仮想ディスクを自動的に拡張する設計となっています。
そのため、今回のサイズ縮小処理は一時的なものであり、今後のデータ更新に伴い再び容量が増加する可能性がございます。 - 最適化中のエラー対策
もし Optimize-VHD 実行時にエラーが発生する場合、該当ファイルが他のプロセスにロックされていないか、または Hyper-V 機能が正しく有効化されているかを確認してください。 - 最新情報の確認
Optimize-VHD の使用方法や注意点については、Microsoft および Docker の公式ドキュメントを定期的に確認することを推奨いたします。
まとめ
docker_data.vhdx ファイルのサイズ縮小は、Optimize-VHD コマンドを用いることで効率的に実施可能です。
- Docker Desktop などの WSL2 を利用するアプリケーションを完全に停止し、
- 管理者権限の PowerShell 上で
wsl --shutdown
を実行、 - Optimize-VHD コマンドを実行することで不要領域を解放し、
- 作業完了後に Docker Desktop を再起動する、という流れとなります。
本手順により、ディスク容量の効率的な利用が実現でき、システム全体のパフォーマンス向上に寄与します。なお、作業実施前には必ずバックアップを取得し、慎重に操作を行うよう心がけてください。