WSL2 子系统迁移(docker&ubuntu)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WSL2 子系统迁移(docker&ubuntu)相关的知识,希望对你有一定的参考价值。

参考技术A (1)查看wsl子系统发行版

(2)关闭docker-desktop

(3)关闭所有wsl子系统发行版

(4)将子系统导出到自己想要的地方 E:\Development\Docker\docker-desktop-data.tar

(5)注销 docker-desktop-data 子系统发行版。

(6)重新导入docker-desktop-data(注意:要先写目录,然后再写文件名)

(7)迁移完成,重新打开docker

感觉步骤与上述差不多。尝试一下

(1)关闭所有的wsl子系统

(2)导出子系统到想要的地方

(3) 注销Ubuntu

(4)重新导入Ubuntu (注意要先写目录,再写目录下的文件)

(5)将Ubuntu设置为默认子系统

(6)成功将Ubuntu移到E盘,解放C盘

(7)有个问题,在没有迁移之前对wsl ubuntu设置的内容全部没了。 有什么办法将之前的设置给弄回来呢?网上查找一番,发现是用户的问题。wsl import之后的子系统,会默认 root 用户登录。但是我之前的用户是 win 。所以只要用户切换到win用户就可以了。

(8)还有一个小问题,如果重新打开wsl ubuntu,默认还是root用户。如何调整为默认普通用户呢?修改注册表

解放了C盘,将4G多的空间移到其他硬盘。

https://www.cnblogs.com/oboth-zl/p/12769220.html#_label0

在 Windows 中迁移到 WSL 2 后对 docker 容器的内存分配

【中文标题】在 Windows 中迁移到 WSL 2 后对 docker 容器的内存分配【英文标题】:Memory allocation to docker containers after moving to WSL 2 in Windows 【发布时间】:2020-10-05 21:36:49 【问题描述】:

我最近更新了我的 Docker 环境以在 Windows 上的 WSL 2 上运行。

为了在以前的版本中设置容器的内存分配限制,我在 Docker 桌面 GUI 中的Settings->Resources->Advanced->Preferences 下可以选择调整内存和 CPU 分配。

在 WSL 2 集成之后,我无法找到该选项。

我认为从现在开始我应该通过我的 Linux 发行版运行所有东西,所以这是我能够找到的解决方案:

docker run -d -p 8081:80 --memory="256m" container_name

我不想每次运行容器时都设置一个标志。有没有办法永久设置内存分配?

【问题讨论】:

此命令是否适用于特定容器docker run -d -p 8081:80 --memory="256m" container_name 是的,@srk 【参考方案1】:

为 WSL2 集成删除了内存和 CPU 设置。但是,从 Windows Build 18945 开始,有一种解决方法可以限制 WSL2 内存使用量。

创建一个%UserProfile%\.wslconfig 文件以调整 WSL2 设置:

[wsl2]
memory=6GB  # Any size you feel like
swap=0
localhostForwarding=true

在管理员 Powershell 中运行 Get-Service LxssManager | Restart-Service(或重新启动),并验证任务管理器中的 vmmem 使用率是否下降。

【讨论】:

是的,我这样做了。事实上,我推动 Microsoft 文档团队改进有关 .wslconfig 文件的文档。存在Vmmem 占用大量内存的问题,他们计划尽快解决。此解决方案仅解决分配给 Linux 子系统的内存。我一直在寻找对每个容器资源的更精细控制。不过感谢您的回答。我会再等几天以获得适当的答案。 绝对是@MurtazaHaji,这是正确的,这是整体 WSL 内存消耗。您是否尝试过应用此处显示的限制 (docs.docker.com/config/containers/resource_constraints)?我没有,但我会尝试回到你身边! 是的,内存标志在每个容器的基础上解决了这个问题,也许有一个用于分配内存的永久标志,但是找不到那个选项。 不需要重启,只需在你的 admin powershell 中运行“Get-Service LxssManager | Restart-Service” “.wslconfig”文件不支持浮点数。如果你设置memory=2.5GB,它只是忽略你的设置,没有任何警告。使用整数。

以上是关于WSL2 子系统迁移(docker&ubuntu)的主要内容,如果未能解决你的问题,请参考以下文章

手绘流程图,教你WSL2与Docker容器无缝互相迁移

在 Windows 中迁移到 WSL 2 后对 docker 容器的内存分配

手绘流程图,教你WSL2与Docker容器无缝互相迁移

wsl2迁移docker的ext4.vhdx

最详尽教程完整介绍-Windows 的 Linux 子系统-WSL1&WSL2

WSL2教程WSL迁移到非系统盘