目的
dockerのイメージやらコンテナの保存先のvhdxをCではなくDドライブの任意のフォルダに持っていきたい。
基本は参考に挙げたリンク先の手順で行った。
やってみたけどうまくいかない
wsl --import docker-desktop D:\Docker\docker-desktop docker-desktop.tar
上記を流した後、import先にはvhdxではなく、
Linuxみたいなディレクトリ構成のフォルダ群が出来上がる。
その状態でもDocker Desktopは起動するし、docker -vでバージョン情報は返ってくるが
docker runコマンドは起動せず下記のエラー。
docker run -d -p 80:80 docker/getting-started
docker: Error response from daemon: open \\.\pipe\docker_engine_linux: The system cannot find the file specified.
原因?
wsl --import docker-desktop D:\Docker\docker-desktop docker-desktop.tar --version 2
これだとうまくvhdxでimportできた。
指定しないとversion1になる場合がある?
wslのデフォルトを設定できるコマンドがあるようなので、
それをあらかじめ設定しておけば問題ないのでは?
wsl --set-default-version 2
であらかじめ設定してからだとimport時にversionを指定しなくてもOKみたいなのでこれで。
ちなみににっちもさっちもいかなくなった場合は
DockerDesktopのTroubleshootの
「Clean / Purge data」を押せば元に戻る。
最終的に流したコマンド
以下Powershellから実施
#dockerを停止しておく
#デフォルトのwslのバージョンを2にしておく
wsl --set-default-version 2
#一度ディストリビューションをシャットダウン
wsl --shutdown
wsl -l -v
# NAME STATE VERSION
#* docker-desktop Stopped 2
# docker-desktop-data Stopped 2
#現在のvhxdをtar形式でexport
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
wsl --unregister docker-desktop
#登録を解除しています...
wsl --unregister docker-desktop-data
#登録を解除しています...
#さっきexportしたtarを読み込み
wsl --import docker-desktop D:\Docker\docker-desktop docker-desktop.tar
wsl --import docker-desktop-data D:\Docker\docker-desktop-data docker-desktop-data.tar
#参考
WSL2 Dockerのイメージ・コンテナの格納先を変更したい (WSL2のvhdxファイルを移動させたい)
Docker Desktop の ディスク領域 を Cドライブから別のドライブへ移動する方法
「WSL」ディストリビューションのインポート・エクスポートはこんなに簡単!