[Windows] Docker Desktop の ディスク領域 を Cドライブから別のドライブへ移動する方法

Docker

WSL2が使えるようになったので、Windows でも Docker を使ってみることにしました。Docker Desktop をインストールすると、無条件で Cドライブ上に仮想環境が作られます。が、Cドライブの空き容量が少なくなったので、Docker環境をDドライブに移動したという話。

試した環境

Windows10 Pro 2004 OSビルド 19041.329
Docker Desktop community 2.3.0.3
WSL2(Windows Subsystem for Linux)

Docker Desktop の設定では WSL2 Integration を有効にしています。WSLのディストリビューションは Ubuntu 20.04 を使っているので、それとのインテグレーションも有効にしてあります。

方法

Docker Desktop が使っている WSL 上のディストリビューション docker-desktop-data が Cドライブ上にありディスクを消費しているので、一度エクスポートしてから、Dドライブにインポートするという方法をとります。

> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-20.04 (既定)
docker-desktop-data  ←←←← これを移動します。
docker-desktop

実際のディスクイメージは、%LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx にあります。

手順

Docker Desktop を止めます。

コマンドプロンプトからWSLのディストリビューションを止めます。

> wsl --shutdown
> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-20.04           Stopped         2
  docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2

docker-desktop-data を tar ファイルにエクスポートします。少し時間がかかります。
wsl –export <ディストリビューション> <ファイル名>

> wsl --export docker-desktop-data  D:\Docker\docker-desktop-data.tar

ext4.vhdx は 50GB を超えていましたが、エクスポートした docker-desktop-data.tar は 11GBでした。

ディストリビューションの登録を解除します。

> wsl --unregister docker-desktop-data

エクスポートしておいた tar ファイルをインポートします。コマンドの引数でインストール場所を指定しますが、ここを Dドライブなどの容量に余裕のある場所にします。
オプションには WSLのバージョンを指定しますが、デフォルトが WSL2 であれば指定する必要はありません。
wsl –import <ディストリビューション> <インストール場所> <ファイル名> [オプション]

> wsl --import docker-desktop-data D:\docker-desktop\data D:\Docker\docker-desktop-data.tar

手順は以上です。

わし
わし

とくに難しいところはありまへん。

コメント

  1. meng_na より:

    手順のご提示、誠にありがとうございます。
    手順通りで実施した後、「docker desktop for windows」が起動できなくなる問題が発生してました。
    別のサイトで調べたら、最後のimportのコマンドの後ろには「–version 2」を付ける必要らしいです。しないと、wslのバージョンが正しくありません。

    誤)wsl –import docker-desktop-data D:\docker-desktop\data D:\Docker\docker-desktop-data.tar
    正)wsl –import docker-desktop-data D:\docker-desktop\data D:\Docker\docker-desktop-data.tar –version 2

    一応ご連携いたします。

    • nosubject.io より:

      こんにちは、こんばんは。
      ご指摘ありがとうございます。当記事ではWSLのデフォルトがVersion2になっていることを前提に書いておりました。
      ご指摘の通り、利用している環境によっては、オプションの指定が必要になります。

      WSLからWSL2 へアップグレードされた環境で、今後はWSL2をメインに利用していくのでしたら、以下を実行しておくのもありかと思います。
      > wsl –set-default-version 2

  2. […] 実際のディスクイメージは、%LOCALAPPDATA%Dockerwsldataext4.vhdx にあると。 この場所を移動する事もできるみたい。 […]

タイトルとURLをコピーしました