usr*_*ΛΩΝ 14 docker docker-desktop
在 DockerCon 2020 之后,我热情地下载了 Windows 10 2004 并尝试将 Docker Desktop 升级到 WSL 2 容器并进行实验。
我有几个容器,特别是几个数据库以及它们存储在卷中的数据。以 Postgres 和 MS SQL Server 为例。
我不想丢失数据,尽管这并不重要。我使用 Docker 卷而不是 OS 挂载,因为我反复看到不建议使用 Windows 挂载进行数据库数据存储。
当我第一次启用 WSL-2 时,我所有的容器和卷都消失了。
我想问一下是否有任何(推荐的)程序或工具可以将基于 Hyper-V 的容器连同它们的数据一起迁移到 WSL-2。
图像可以很容易地重新下载。容器设置和数据迁移到 WSL-2 怎么样?
当然,我可以手动完成。我可以busybox使用另一个busybox实例将卷转储到我的本地驱动器(作为tar)并使用另一个busybox实例进行恢复
当然,这里是我的经验分享。
run语法首先,您需要记住或重构语法以启动容器以便稍后重新运行它们。这个想法是从现有容器中收集尽可能多的信息以重新运行它们
这是一个很好的起点
##迁移卷
这介于易于执行和长时间运行的任务之间。简单,因为我只需要一个容器,冗长乏味,因为它需要多个命令
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
Run Code Online (Sandbox Code Playgroud)
冲洗并重复您感兴趣的所有命名卷。我只有一堆
就我而言,Oracle 12c/19c 已构建但从未推出。构建 Oracle 很痛苦,因为您必须在下载其许可的 ZIP 文件后构建容器
docker save -o明智地使用。例子
docker save oracledb:12.0.0.0c -o oracledb.img
Run Code Online (Sandbox Code Playgroud)
##恢复图像
切换到 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
Run Code Online (Sandbox Code Playgroud)
现在您拥有源 Docker commandline-s,启动它们以重新创建容器。
结论:我正在考虑制作一个可重用的 Powershell 脚本
| 归档时间: |
|
| 查看次数: |
4019 次 |
| 最近记录: |