WSL Docker のデータ保存場所を変更する


WSL の Docker のデータ配置場所を変更する

ご注意

  • 実践する際は自己責任でお願いします。
  • 運が悪いと Docker Desktop が死にます

はじめに

Docker Desktop for Windows を WSL で使用する場合、次のパスにデータが保存されます。

  • C:\Users\<USER>\AppData\Local\Docker\wsl\data

C ドライブから変更したい人などのために手順を記載します。

手順

  1. Docker Desktop をインストールしなおす
    • しなおすほうが成功率が高いです
  2. Docker Desktop を終了する
  3. すべての WSL ディストリビューションを終了する
   wsl --shutdown

   # すべてのディストリビューションが Stopped になっていれば OK
   wsl -l -v
     NAME                   STATE           VERSION
   * Ubuntu-20.04           Stopped         2
     docker-desktop-data    Stopped         2
     docker-desktop         Stopped         2
  1. Docker のデータディストリビューションをファイルに出力
   wsl --export docker-desktop-data docker-desktop-data.tar
  • Docker のデータは docker-desktop-data で管理されています。
  • docker-desktop-data.tar は任意の出力先パスに変更しても OK です。
  1. docker-desktop-data ディストリビューションを削除
   wsl --unregister docker-desktop-data
  1. docker-desktop-data をインポート
   mkdir E:\wsl\distro\docker-desktop\data
   wsl --import docker-desktop-data E:\wsl\distro\docker-desktop\data docker-desktop-data.tar --version 2
  • E:\wsl\docker-desktop-data 以下に出力する場合は上記です。
  1. 動作確認する
  2. 出力した TAR ファイルは不要なら削除する
   rm docker-desktop-data.tar

wsl --import で失敗する場合

解決策1: WSL 1 としてインポートして WSL 2 に変更する

wsl --import docker-desktop-data E:\wsl\distro\docker-desktop\data docker-desktop-data.tar --version 1
wsl --set-version docker-desktop-data 2

解決策2: WSL 2 の設定を変更する

~/.wslconfig
[wsl2]
memory=8GB
swap=64GB