docker - 将图像从 Hyper-V 移植到 WSL2
问题描述
我最近安装了可以访问 WSL2 的 Windows 10 2004,在此过程中,Docker Desktop 为您提供了启用 WSL2 支持的选项,以便它从将其容器/卷存储在 Hyper-V 中切换到 WSL2。我启用了此功能,但它没有从 Hyper-V 移植到我现有的任何容器或卷上。相反,它刚刚开始新鲜。
我想知道是否可以将我现有的容器/卷从 Hyper-V 移动到 WSL2,这样我就不会丢失所有卷数据并且必须重建所有容器?
解决方案
要将现有卷从 Hyper-V 上的 Docker(即 WSL2 之前)移植到基于 WSL2 的 Docker:
- 确保您已恢复到 Hyper-V;也就是说,确保在 Docker 桌面设置 -> 常规中取消选中
Use the WSL 2 based engine
.
从提升的 Powershell 终端执行以下命令以备份卷:
docker volume ls (find volume name you want to copy: some_volume)
docker run --rm -v some_volume:/volume -v c:\where-to-backup:/backup alpine tar -cjf /backup/backup.tar.bz2 -C /volume ./
- 现在,检查
Use the WSL 2 based engine
Docker Desktop 中的设置并恢复卷:
docker run --rm -v some_volume:/volume -v c:\where-to-backup:/backup alpine tar -C /volume/ -xjf /backup/backup.tar.bz2
推荐阅读
- angular - 使用 [(ngModel)] 通过 innerHtml 绑定输入元素
- jenkins - Jenkins 2 为一项工作构建处理器
- python - 汇总和合并列表及其计数
- java - 如何通过 HtmlUnitDriver 和 HtmlUnit 无头浏览器在 Pick a Category (US) 下创建以不同方式呈现的项目列表?
- kotlin - TreeSet中的HeadSet、TailSet、SubSet
- react-native - 反应原生
- asp.net - 使用自定义验证器控件条件是入口应该是数字和字母
- java - clientHello 中的 TLS 1.2 客户端密码列表对于不同的 https 服务器主机的顺序不同
- github-api - 无法使用 Github API 向拉取请求发布评论
- typescript - RaphaelJS 不会使用 typescript 构建