MENU

Docker Desktop修改默认存储路径

• September 16, 2023 • Read: 9167 • 解决方案

前言展开目录

最近二开了不少项目,基本都是用 Docker 部署,所以之前在电脑上装了 Docker,不过在 Windows 上安装 Docker Desktop 后,Docker 默认是把镜像保存到 C:\Users\<用户>\AppData\Local\Docker\wsl\data\ 路径的 ext4.vhdx 文件下,在 C 盘放这些无关紧要的文件属实是浪费,所以整理了一下方法,把这些文件移动到其他磁盘去。

修改 WSL 展开目录

首次启动 Docker Desktop 会提示安装 WSL,没有 WSL 则无法启动 Docker Engine 服务。因为目前的 docker 依附 WSL 来进行文件映射,所以通过 WSL 来修改 docker 的文件映射路径,就可以把这些文件移动到其他磁盘中。

默认情况下,Docker Desktop for Window 会创建如下两个发行版:

  1. docker-desktop (distro/ext4.vhdx)
  2. docker-desktop-data (data/ext4.vhdx)

目前 WSL2 已经全量发布,WSL2 下 docker-desktop-data 通常位于以下位置: C:\Users\<你当前用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx,我电脑中这个文件夹高达 50GB+,完全是浪费 C 盘空间!

在开始操作前,请先退出 Docker Desktop,然后在 terminal 中输入 wsl --list -v,确保两个服务都是停止状态:

image.png

备份镜像展开目录

分别输入以下命令备份 WSL,后面的备份路径可以自行修改,我这里是备份到了 G 磁盘:

  • wsl --export docker-desktop G:\docker-desktop.tar
  • wsl --export docker-desktop-data G:\docker-desktop-data.tar

取消注册展开目录

  • wsl --unregister docker-desktop
  • wsl --unregister docker-desktop-data

备份导入展开目录

执行命令前,请先更改命令中的 G:\docker-desktop.tarG:\docker-desktop-data.tar 为自己之前备份的路径,挂载的路径 G:\docker\desktopG:\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

测试展开目录

输入 wsl --list -v 查看其输出是否和修改之前一样,正常情况下会出现两个发行版,即:docker-desktopdocker-desktop-data

然后启动你的 Docker Desktop 看看是否能够正常运行。之后制作或者拉取的镜像都会存储在新的目录,而不是 C 盘中的默认路径。

Docker 清理缓存展开目录

最后再搬运一个清理 docker 缓存的教程~

在使用 docker build 构建镜像时,Docker 会按照 Dockerfile 中定义的步骤逐步生成 Docker 镜像。而镜像生成的过程中,每一步骤所生成的结果都会被缓存(cache)下来,以便下次镜像生成时不必再重新执行同一步骤以提高构建镜像的速度。

使用 --no-cache 展开目录

  • docker build --no-cache .

使用 docker system prune 展开目录

使用 docker system prune 命令来清理不再使用的资源,包括停止的容器、未被标记的镜像、未使用的网络和未使用的数据卷。

  • # 清理所有不再使用的资源
  • docker system prune
  • # 清理更加彻底,将未使用 Docker 镜像都删掉
  • docker system prune -a

Henry 23-09-16

版权属于:字节星球 / 肥柴之家 (转载请联系作者授权)
原文链接:https://www.bytecho.net/archives/2324.html
本作品采用知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议进行许可。

Last Modified: September 19, 2023
Archives QR Code
QR Code for this page
Tipping QR Code
Leave a Comment

14 Comments
  1. 34243 34243 IP属地:广东     Windows    Google Chrome

    在 c 盘的那些镜像需要手动删除吗

    1. Henry Henry     Windows    Google Chrome

      @34243 我也忘记了,你可以看看 C 盘还有没有那些文件,有的话就可以手动删除了

  2. 垃圾广告 垃圾广告 IP属地:上海     Windows    Google Chrome

    感谢分享

    1. Henry Henry     iPhone    Safari

      @垃圾广告还是那句话,打广告的没🐎

  3. 垃圾广告 垃圾广告 IP属地:江苏     Windows    Google Chrome

    感谢分享

    1. Henry Henry     Windows    Google Chrome

      @垃圾广告打广告的能不能爬啊?

  4. 小熊 小熊 IP属地:四川     iPhone    Safari

    这个底部好漂亮 @(哈哈)

    1. Henry Henry     Windows    Google Chrome

      @小熊喜欢就多来

  5. ccbbp ccbbp IP属地:安徽     Android    FireFox

    docker 真的这么高效吗,服务器配置不高也可以用作生产环境吗

    1. Henry Henry     Windows    Google Chrome

      @ccbbp 个人觉得除了内存占用会稍高一些,其他情况没有明显性能差异。