前言 {#menu_index_1}
最近二开了不少项目,基本都是用Docker部署,所以之前在电脑上装了Docker,不过在 Windows 上安装 Docker Desktop 后,Docker默认是把镜像保存到 C:\Users\<用户>\AppData\Local\Docker\wsl\data\
路径的ext4.vhdx
文件下,在C盘放这些无关紧要的文件属实是浪费,所以整理了一下方法,把这些文件移动到其他磁盘去。
修改WSL {#menu_index_2}
首次启动 Docker Desktop 会提示安装 WSL,没有WSL则无法启动 Docker Engine 服务。因为目前的 docker 依附 WSL 来进行文件映射,所以通过 WSL 来修改 docker 的文件映射路径,就可以把这些文件移动到其他磁盘中。
目前WSL2已经全量发布,WSL2 下 docker-desktop-data 通常位于以下位置: C:\Users\<你当前用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx
,我电脑中这个文件夹高达50GB+
,完全是浪费C盘空间!
在开始操作前,请先退出Docker Desktop,然后在terminal中输入wsl --list -v
,确保两个服务都是停止状态:
备份镜像 {#menu_index_3}
分别输入以下命令备份WSL,后面的备份路径可以自行修改,我这里是备份到了G磁盘:
wsl --export docker-desktop G:\docker-desktop.tar
wsl --export docker-desktop-data G:\docker-desktop-data.tar
取消注册 {#menu_index_4}
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
备份导入 {#menu_index_5}
执行命令前,请先更改命令中的G:\docker-desktop.tar
,G:\docker-desktop-data.tar
为自己之前备份的路径,挂载的路径G:\docker\desktop
,G:\docker\data
也需要改为自己想要挂载的路径(需提前创建好对应的文件夹,不然会提示找不到目录):
wsl --import docker-desktop "G:\docker\desktop" "G:\docker-desktop.tar" --version 2
wsl --import docker-desktop-data "G:\docker\data" "G:\docker-desktop-data.tar" --version 2
测试 {#menu_index_6}
输入wsl --list -v
查看其输出是否和修改之前一样,正常情况下会出现两个发行版,即:docker-desktop
,docker-desktop-data
。
然后启动你的Docker Desktop看看是否能够正常运行。之后制作或者拉取的镜像都会存储在新的目录,而不是C盘中的默认路径。
Docker清理缓存 {#menu_index_7}
最后再搬运一个清理docker缓存的教程~
使用 --no-cache {#menu_index_8}
docker build --no-cache .
使用 docker system prune {#menu_index_9}
使用 docker system prune
命令来清理不再使用的资源,包括停止的容器、未被标记的镜像、未使用的网络和未使用的数据卷。
# 清理所有不再使用的资源
docker system prune
# 清理更加彻底,将未使用 Docker 镜像都删掉
docker system prune -a
Henry 23-09-16