Docker Desktopのイメージ保存先を変えたい
Cドライブ圧迫を回避したい
Windows環境でDockerを利用する場合はDockerDesktop for Windowsを使うことが多いと思います。
しかし、インストール時に保存先を選ぶことが出来ずに自動でCドライブに保存されてしまいますよね。
また、デフォルトではエンジンについては%LocalAppData%\Docker\wsl\distro\ext4.vhdx、Dockerイメージについては%LocalAppData%\Docker\wsl\data\ext4.vhdxに保存されるのですが、サイズが肥大しすぎでCドライブの圧迫が気になります。。。


うぎゃああああ!!!
Dドライブに変更可能
しかしご安心を。インストール後に各種データの保存先を任意の場所に変えることが出来るので、今回はDドライブに変更してみようと思います。
手順
前提
一旦wsl --list --verboseコマンドで今の状態を確認してみましょう。
NAME STATE VERSION
* docker-desktop-data Running 2
docker-desktop Running 2
上記は現状の%LocalAppData%\Docker\wsl\配下にあるディストリビューションとなっています。
既存のディストリビューションをコピー
まずは既存のディストリビューションをwsl --export {ディストリビューション名} {変更先ディレクトリ}/{ディストリビューション名}.tarでコピーしましょう。
エクスポートが進行中です。これには数分かかる場合があります。
この操作を正しく終了しました。
これでtarファイルが生成されると思います。
今回はdocker-desktopとdocker-desktop-dataの両方をエクスポートしました。
ディストリビューションを開始できませんでした。エラー コード: 2、エラーステップ: 2
ディストリビューションを開始できませんでした。エラー コード: 2、エラーステップ: 2というエラーが出る場合がありますが、この場合はwsl --export {ディストリビューション名} {変更先ディレクトリ}/{ディストリビューション名}.vhdx --vhdのように変更してtarではなくvhdx形式で出力しましょう。
既存ディストリビューションの削除
エクスポートが完了したら、wsl --unregister {ディストリビューション名}コマンドでWSLから既存のディストリビューションを削除しておきましょう。
登録解除。
この操作を正しく終了しました。
確認
念のためコマンドで確認してみましょう。
Linux 用 Windows サブシステムにインストールされているディストリビューションはありません。
無事に削除できていますね。
WSLにインポート
削除が終わったら先ほどエクスポートしたファイルをインポートしましょう。
tarファイルの場合は wsl --import {ディストリビューション名} {保存先ディレクトリ} {出力したファイルまでのパス}、vhdxファイルの場合は wsl --import {ディストリビューション名} {保存先ディレクトリ} {出力したファイルまでのパス} --vhdです。
インポート中です。この処理には数分かかることがあります。
この操作を正しく終了しました。
確認
念のためコマンドで確認してみましょう。
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2
無事に追加できていますね。
デフォルトで使用するディストリビューションを変更するには
出力結果を見るとわかるのですが、デフォルトで使用するディストリビューションに違いが出ており、docker-desktop-dataをデフォルトで使用したいので、wsl -s {ディストリビューション名}で変更しておきます。
この操作を正しく終了しました。
確認
念のためコマンドで確認してみましょう。
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2
無事に変更できていますね。
終わりに
以上のように簡単にDocker関連の保存先を変える事が出来ました。
Cドライブはなるべく容量を開けておきたいと思うので、是非この方法でディスク圧迫を回避してみてはいかがでしょうか♪
