解决Docker占用C盘资源的问题

2024-08-23 20:01:37 浏览数 (3)

DockerWindowsFAQ

解决Docker占用C盘资源的问题

@Homqyy@Homqyy

在Windows中安装Docker桌面版,会使用子系统WSL,而子系统默认是将资源放在C盘的,这样会导致C盘资源紧张,进而影响系统的使用。本文将转移Docker的资源到非系统盘,比如D盘。该方法适用所有WSL子系统。

解决步骤

在D盘创建文件夹D:WSL,用于存放WSL子系统的资源

在D盘创建文件夹D:WSLdocker用于存放Docker的资源

打开PowerShell,输入wsl --list,查看WSL子系统的列表,能发现Docker的相关子系统服务,如下所示:

代码语言:javascript复制
PS C:Usershomqyy> wsl --list
docker-desktop-data
docker-desktop
  • docker-desktop 用于运行 Docker engine,这个不涉及存储数据,因此我们可以不管他
  • docker-desktop-data 存储容器和镜像,这个服务是存储数据的,因此我们目标是迁移它

停子系统docker-desktop-data

代码语言:javascript复制
PS C:Usershomqyy> wsl -t docker-desktop-data

导出docker-desktop-data子系统到D:WSLdocker文件夹进行备份:

代码语言:javascript复制
PS C:Usershomqyy> wsl --export docker-desktop-data D:WSLdockerdocker-desktop-data.tar

注销docker-desktop-data子系统:

代码语言:javascript复制
PS C:Usershomqyy> wsl --unregister docker-desktop-data
  • 这时候如果查看子系统的话(wsl --list),可以看到docker-desktop-data已经不见了

恢复docker-desktop-data子系统,并将资源存储位置设置为D:WSLdockerdocker-desktop-data

代码语言:javascript复制
PS C:Usershomqyy> wsl --import docker-desktop-data D:WSLdockerdocker-desktop-data D:WSLdockerdocker-desktop-data.tar --version 2
  • 这时候如果查看子系统的话(wsl --list),可以看到docker-desktop-data又出来了

启动docker-desktop-data子系统,可以看到Docker的资源已经转移到了D盘:

代码语言:javascript复制
PS C:Usershomqyy> wsl -d docker-desktop-data

重新运行Docker桌面版

参考

  • Docker Desktop WSL 2 backend on Windows

0 人点赞