前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >win10使用WSL 2运行Docker Desktop,运行文件从C盘迁移到其他目录

win10使用WSL 2运行Docker Desktop,运行文件从C盘迁移到其他目录

作者头像
xhznl
发布2020-08-14 11:19:33
4.6K1
发布2020-08-14 11:19:33
举报
文章被收录于专栏:小黑在哪里小黑在哪里
前言

前几天重装系统,把系统升到了 Windows 10 2004,然后在安装 Docker Desktop(2.3.0.3 版本)时发现跟以前不太一样了。现在 Docker Desktop 默认使用 WSL 2 来运行,而不是以前的 Hyper-V。

WSL

WSL:适用于 Linux 的 Windows 子系统。

  • 什么是适用于 Linux 的 Windows 子系统?

★适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。 ”

  • 什么是 WSL 2?

★WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性。 ”

安装完后试了一下,最明显的感觉就是开启 docker 的速度大大提升!!!

但是以前设置镜像位置的功能不见了:

看官网说明,原来,启用 WSL 后,docker 运行数据都在 WSL 发行版中,文件位置都只能由 WSL 管理!

安装 docker 后,docker 会自动创建 2 个发行版:

  • docker-desktop
  • docker-desktop-data

WSL 发行版默认都是安装在 C 盘,在%LOCALAPPDATA%/Docker/wsl 目录 docker 的运行数据、镜像文件都存在%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx 中,这对 C 盘空间紧张的人非常不友好。。。

WSL 发行版迁移

网上查了一下 wsl 发行版迁移,几乎都是说使用 LxRunOffline.exe

经过我试验,LxRunOffline.exe 确实可以迁移自己安装的发行版,却迁移不了 docker 自动创建的 2 个发行版!

最后只能去 github 提了个 issues:https://github.com/docker/for-win/issues/7348

下面是操作方法:

  1. 首先关闭 docker
  2. 关闭所有发行版:wsl --shutdown
  3. 将 docker-desktop-data 导出到 D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar(注意,原有的 docker images 不会一起导出)wsl --export docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar
  4. 注销 docker-desktop-data:wsl --unregister docker-desktop-data
  5. 重新导入 docker-desktop-data 到要存放的文件夹:D:\SoftwareData\wsl\docker-desktop-data\:wsl --import docker-desktop-data D:\SoftwareData\wsl\docker-desktop-data\ D:\SoftwareData\wsl\docker-desktop-data\docker-desktop-data.tar --version 2

只需要迁移 docker-desktop-data 一个发行版就行,另外一个不用管,它占用空间很小。

完成以上操作后,原来的%LOCALAPPDATA%/Docker/wsl/data/ext4.vhdx 就迁移到新目录了:

重启 docker,这下不用担心 C 盘爆满了!

参考:

https://docs.microsoft.com/zh-cn/windows/wsl/ https://docs.docker.com/docker-for-windows/wsl/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小黑在哪里 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WSL
  • WSL 发行版迁移
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档