在DockerCon 2020之后,我热情地下载了Windows102004,并尝试将Desktop升级到WSL 2容器并进行实验。
我有几个容器,特别是两个数据库以及它们的数据存储在卷中。在这种情况下,Postgres和。
我不想丢失这些数据,尽管它并不重要。我使用的是Docker卷,而不是OS挂载,因为我多次看到使用Windows挂载存储数据库数据是而不是推荐的。
当我第一次启用WSL-2时,我所有的容器和卷都消失了.
我想问一下,是否有任何(推荐的)程序或工具来增强基于Hyper-V的容器到WSL-2以及它们的数据。
图像可以很容易地重新下载。如何设置容器和数据迁移到WSL-2?
当然,我可以手动完成它。我可以使用将卷转储到本地驱动器(作为tar),并使用另一个busybox实例进行还原。
发布于 2020-06-01 12:43:27
当然,这是我的经验分享。
重新构造停靠器run语法
首先,您需要记住或重新构造语法来启动容器,以便以后重新运行它们。这样做的目的是从现有容器中收集尽可能多的信息,以便重新运行它们。
这里有一个很好的starting point
迁移量
这介于执行方便和长期执行任务之间。简单,因为它只花了我一个容器,冗长乏味,因为它需要多个命令。
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。示例
docker save oracledb:12.0.0.0c -o oracledb.img恢复图像
切换到WSL-2后,明智地使用docker load。
还原卷
用docker volume create手动重新创建所有卷,用busybox解压。这是一种反向
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脚本
https://stackoverflow.com/questions/62131415
复制相似问题