首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将现有容器从Hyper-V迁移到WSL2技术

将现有容器从Hyper-V迁移到WSL2技术
EN

Stack Overflow用户
提问于 2020-06-01 11:44:27
回答 1查看 5.4K关注 0票数 15

在DockerCon 2020之后,我热情地下载了Windows102004,并尝试将Desktop升级到WSL 2容器并进行实验。

我有几个容器,特别是两个数据库以及它们的数据存储在卷中。在这种情况下,Postgres和。

我不想丢失这些数据,尽管它并不重要。我使用的是Docker卷,而不是OS挂载,因为我多次看到使用Windows挂载存储数据库数据是而不是推荐的。

当我第一次启用WSL-2时,我所有的容器和卷都消失了.

我想问一下,是否有任何(推荐的)程序或工具来增强基于Hyper-V的容器到WSL-2以及它们的数据。

图像可以很容易地重新下载。如何设置容器和数据迁移到WSL-2?

当然,我可以手动完成它。我可以使用将卷转储到本地驱动器(作为tar),并使用另一个busybox实例进行还原。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-01 12:43:27

当然,这是我的经验分享。

重新构造停靠器run语法

首先,您需要记住或重新构造语法来启动容器,以便以后重新运行它们。这样做的目的是从现有容器中收集尽可能多的信息,以便重新运行它们。

这里有一个很好的starting point

迁移量

这介于执行方便和长期执行任务之间。简单,因为它只花了我一个容器,冗长乏味,因为它需要多个命令。

代码语言:javascript
运行
复制
docker run `
           --rm ` #Dispose after use
           -v G:\Docker:/volumes ` # Mount my Windows drive so that the file will appear in Explorer
           - v src_mount:/src ` # e.g. mssql2017:/mssql2017 mounts mssql2017 named volume to Busybox
           busybox `
           tar -zcvf /volumes/backup_name.tar.gz /src

冲洗并重复你感兴趣的所有指定卷。我只有一堆

转储你无法/不愿意重建的图像

在我的例子中,Oracle12c/19c是构建的,但从未被推入。构建Oracle是痛苦的,因为您必须在下载其许可的ZIP文件之后构建容器。

明智地使用docker save -o。示例

代码语言:javascript
运行
复制
docker save oracledb:12.0.0.0c -o oracledb.img

恢复图像

切换到WSL-2后,明智地使用docker load

还原卷

docker volume create手动重新创建所有卷,用busybox解压。这是一种反向

代码语言:javascript
运行
复制
docker run `
       --rm ` #Dispose after use
       -v G:\Docker:/volumes ` # Mount my Windows drive so that the file will appear in Explorer
       - v dest_mount:/dest ` # e.g. mssql2017:/mssql2017 mounts mssql2017 named volume to Busybox
       busybox `
       tar -zxvf /volumes/backup_name.tar.gz /dest

还原容器

现在您有了源Docker命令行-s,启动它们来重新创建容器。

结论:我正在考虑创建一个可重用的Powershell脚本

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62131415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档