Docker Desktp更改镜像、容器存储位置
HDUZN

Docker用的多一点,特别是装了一个几十G的Linux后 ,就好几十G空间了,太占用系统盘了。所以想换一下存储位置。

Docker Desktop查看settings设置,发现无法在设置里更改,用的是WSL2。通过WSL2启动,会自动创建2个子系统,分别对应2个 vhdx 硬盘映像文件。

默认安装在C盘,默认的镜像容器这些存储在:C:\Users[用户名]\AppData\Local\Docker\wsl\,分别在data和distro目录下都有个ext4.vhdx文件。(特别是data目录下文件,就巨大)

WSL全称:Windows Subsystem for Linux,即「适用于 Linux 的 Windows 子系统」,可让开发人员按原样运行 GNU/Linux 环境 – 包括大多数命令行工具、实用工具和应用程序 – 且不会产生传统虚拟机(a traditional virtual machine)或双启动设置开销。

步骤:

1.查看WSL2自建的2个子系统

1
2
# 查看WSL2自建的2个子系统
wsl --list -v

可以看到结果有2个:docker-desktop-data和docker-desktop,同时还能看到STATE(状态)是Running或者Stopped。

2.关闭WSL

直接右键退出 Docker Desktop软件。

1
2
3
4
5
# 退出后再次运行查看STATE(状态)是否是Stopped
wsl --list -v

# 若退出后还是Running,运行以下命令关闭WSL
wsl --shutdown

3.导出镜像ext4.vhdx到压缩包

导出的路径需要提前创建好目录,否则可能会报错。
比如我这里提前建好了E:\docker\wsl,以及wsl下的data和distro目录。

1
2
3
4
5
# 把 data\ext4.vhdx 导出到压缩文件 docker-desktop-data.tar
wsl --export docker-desktop-data E:\docker\wsl\docker-desktop-data.tar

# 把 distro\ext4.vhdx 导出到压缩文件 docker-desktop.tar
wsl --export docker-desktop E:\docker\wsl\docker-desktop.tar

4.注销原来的镜像

依次注销,注销完成后可以看到原来C盘的2个ext4.vhdx文件都没了。

1
2
3
wsl --unregister docker-desktop-data

wsl --unregister docker-desktop

5.将导出的压缩包再导入回wsl,并设置挂载目录

1
2
3
wsl --import docker-desktop-data E:\docker\wsl\data  E:\docker\wsl\docker-desktop-data.tar --version 2

wsl --import docker-desktop E:\docker\wsl\distro E:\docker\wsl\docker-desktop.tar --version 2

依次执行完后,在目录下又可以看到ext4.vhdx文件了,再启动Docker Desktop,就正常了。

压缩包docker-desktop-data.tar和docker-desktop.tar正常启动以后就不需要了,可以删除了。

  • 本文标题:Docker Desktp更改镜像、容器存储位置
  • 本文作者:HDUZN
  • 创建时间:2023-01-09 19:05:36
  • 本文链接:http://hduzn.cn/2023/01/09/Docker-Desktp更改镜像-容器存储位置/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论