【原创】更改 Docker for Windows 的硬盘文件位置

一、简介

Windows 的 Docker 是基于 Hyper-V (一种 Windows 系统自带的虚拟化技术)运行的。

由于 Docker Server 本身就是一个 Hyper-V 的虚拟容器,因此 Docker 的虚拟硬盘的大小会随着使用逐渐增大。而 Hyper-V 的虚拟容器的硬盘镜像默认是存放在 C 盘的。

所以可能存在的问题就是 Docker Server 的镜像文件把 C 盘撑满而导致电脑崩溃。因此,本文介绍如何将 Docker Server 的硬盘镜像文件迁移到其他非系统盘。

二、相关环境

  • Windows 10 x64

  • Docker 18.03.0-ce-win59 (16762)

三、更改过程

Docker Server 在 Windows 上运行起来后,我们可以发现他的硬盘镜像默认存放在如下目录(Docker Linux Container):

C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks\MobyLinuxVM.vhdx

可以看到默认是在 C 盘的用户目录中的文档下的 Hyper-V 目录下,强烈建议将这个目录更改到非 C 盘的其他目录,原因如下:

1 C 盘主要是我们的系统盘,而且相对来说 C 盘分配的空间不大,而虚拟机的硬盘镜像会随着我们的使用逐渐变大

2 Hyper-V 的虚拟镜像是可以进行导入的,如果存放在 C 盘,并在重装系统的时候格式化 C 盘,那么我们之前创建的虚拟机镜像就丢失了。

但尝试更改了两次发现都更改失败,失败方法如下:

1 更改 Advanced 中的 Disk image location

Settings -> Advanced -> Disk image location -> 点击 Browse -> 选择了一个 D 盘的目录 -> 点击 Apply。

点击 Apply 后会自动重启 Docker,但遗憾的是重启后的 Disk image location 还是默认的路径

2 更改 Daemon 中的 “graph” 值

Settings -> Daemon -> 打开 Advanced -> 在正文的文本框中更改一个存放的目录,如下 -> 点击 Apply

点击 Apply 后会自动重启 Docker,但遗憾的是重启后 Docker 会直接报错

四、更改 Hyper-V 镜像位置

在 Docker 中更改失败是因为 Docker Server 的运行是基于 Hyper-V 创建的一个虚拟容器,因此需要在 Hyper-V 中才能更改

按 Windows + Q 调出 Windows 的全局搜索功能 -> 输入 “hyper-v” -> 点击搜索结果 “Hyper-V 管理器”

可以看到如下的 Hyper-V 管理界面,其中的 MobyLinuxVM 就是为 Docker 创建的虚拟机

选择 “Hyper-V 管理器” -> “DESKTOP-VL0O8MS”(当前的计算机名)-> 在右侧选择 “Hyper-V 设置…” -> “虚拟硬盘” -> 点击 “浏览” -> 选择我们要更改的目录

注:

1 复制前请先关闭 Docker 服务

2 指定的目录需要自行创建

3 如果原来的虚拟硬盘(如 C 盘)目录中已有内容,需要将原有内容复制到新的(D 盘)目录中

4 复制完成之后再启动 Docker,查看是否已经自动变更

5 更改目录后可将原目录下的硬盘文件删除

虚拟机目录的更改也是一样,

You may also like...

发表评论

您的电子邮箱地址不会被公开。