WindowsでDockerを使用する多くの場合,Docker Desktop for Windowsを利用します.
Docker Desktop for Windowsのデフォルト保存先はCドライブです.
Dockerイメージを複数Pullやコンテナを多用すると,ディスク容量を圧迫するため別途Dドライブなどに保存先を変更したいと思うことでしょう.
この記事では,Dockerの保存先(イメージとそのエンジン)をDドライブに変更する手順を記載します.
デフォルトの保存場所
まず,Docker Desktop for Windowsのデフォルト保存先は下記の通りです.
- イメージやコンテナ:
%LocalAppData%\Docker\wsl\data\ext4.vhdx
- エンジン:
%LocalAppData%\Docker\wsl\distro\ext4.vhdx
これらの保存先をDドライブに変更します.
%LocalAppData%\Docker\wsl\data
→D:\Docker\wsl\data
%LocalAppData%\Docker\wsl\distro
→D:\Docker\wsl\distro
保存場所の変更手順
1. Docker Desktop for Windowsの停止
[Quit Docker Desktop]を押し,停止します.
2. 現在のステータスの確認
PowerShellでコマンドを次のように入力し,[STATE]が[Stopped]になっていることを確認します.
wsl --list --verbose
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2
3. 保存先のディレクトリの作成
下記コマンドで,保存先ディレクトリを作成します.(コマンドではなく,エクスプローラーなどのGUIで作成してもOKです)
mkdir D:\Docker\wsl\data
mkdir D:\Docker\wsl\distro
4. エンジン,イメージ等をエクスポート
下記コマンドで,現在のDocker情報を.tarに出力します.
wsl --export docker-desktop "D:\Docker\wsl\data\docker-desktop.tar"
wsl --export docker-desktop-data "D:\Docker\wsl\distro\docker-desktop-data.tar"
docker-desktop-data
はコンテナのサイズによっては少し時間がかかります(数分から数十分).
5. 以前の設定を削除
デフォルトで設定されている保存先である%LocalAppData%\Docker\wsl\data\ext4.vhdx
および%LocalAppData%\Docker\wsl\distro\ext4.vhdx
の設定を解除します.
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
6. エクスポートしたエンジンおよびイメージ等をインポート
エクスポートした.tarをインポートします.
wsl --import docker-desktop "D:\Docker\wsl\distro" "D:\Docker\wsl\data\docker-desktop.tar" --version 2
wsl --import docker-desktop-data "D:\Docker\wsl\data" "D:\Docker\wsl\distro\docker-desktop-data.tar" --version 2
インポートが成功していれば,下記のように確認できます(失敗した場合,該当箇所が表示されません).
wsl --list --verbose
NAME STATE VERSION
* docker-desktop Stopped 2
docker-desktop-data Stopped 2
Dockerに関する良書
まとめ
この記事では,Docker Desktop for Windowsにおけるコンテナおよびエンジンの保存場所を変更する方法を記載しました.