使用 Docker Desktop 的 WSL2 上的 Docker 卷

2024-02-13

我刚刚在 Windows 上使用 Docker 尝试 WSL 2,但在安装卷时遇到了问题:

version: "3.7"

services:
    node:
        build: .
        container_name: node
        hostname: node
        volumes: 
            - ./app:/app
        stdin_open: true

容器构建并启动良好,我可以使用 docker exec 很好地访问它,但是/app容器内的文件夹未绑定到我的笔记本电脑app文件夹。然而,正确的路径实际上已正确安装在正在运行的容器上:

(这里我在主机上执行 pwd ,看看它是否与容器上安装的内容完美匹配)

➜  app pwd   
/mnt/c/Users/willi/devspace/these/app

这是 portainer 的屏幕,告诉我什么路径安装在容器中的哪个位置,并且所有内容都匹配。

我在主机上的应用程序文件夹中创建的文件在容器的应用程序文件夹中不可见,反之亦然。这很奇怪,我不知道如何调试它。

补充信息:

  • Windows 10 专业版 10.0.19041
  • 适用于 Windows 的 Docker 版本:2.3.0.4
  • docker versionWSL 中的输出:2012 年 3 月 19 日
  • docker-compose version:1.26.2

Thanks


正如 @Pablo 提到的,最佳实践似乎是使用 WSL 文件系统来映射卷。

看看有关 WSL2 的 Docker 文档 https://docs.docker.com/docker-for-windows/wsl/#best-practices:

最佳实践

  1. To get the best out of the file system performance when bind-mounting files:
    • 存储绑定安装到 Linux 容器中的源代码和其他数据(即,docker run -v <host-path>:<container-path>)在 Linux 文件系统中,而不是在 Windows 文件系统中。
    • 如果原始文件存储在 Linux 文件系统中,Linux 容器仅接收文件更改事件(“inotify 事件”)。
    • 当文件从 Linux 文件系统绑定安装而不是从 Windows 主机远程安装时,性能要高得多。因此避免docker run -v /mnt/c/users:/users (where /mnt/c从 Windows 安装)。
    • 相反,从 Linux shell 使用类似的命令docker run -v ~/my-project:/sources <my-image> where ~由 Linux shell 扩展为$HOME.
  2. 如果您对 docker-desktop-data VHDX 的大小有疑问,或者需要更改它,请查看 Windows 中内置的 WSL 工具。
  3. 如果您担心 CPU 或内存使用情况,可以配置分配给 WSL 2 实用程序 VM 的内存、CPU、交换大小的限制。
  4. 为了避免与在 Docker Desktop 上使用 WSL 2 发生任何潜在冲突,您必须在安装 Docker Desktop 之前卸载直接通过 Linux 发行版安装的任何早期版本的 Docker Engine 和 CLI。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Docker Desktop 的 WSL2 上的 Docker 卷 的相关文章

随机推荐

  • 部分类与扩展方法

    我没有太多使用这两种方法来扩展类或针对类创建扩展方法的经验 通过查看其他人的工作 我在这里有一个问题 我看到人们在项目中使用分部类来扩展实体类 同时 在同一个项目中 还有另一个文件夹 其中包含很多实体类的扩展方法 这样做对吗 我的意思是这两
  • 我可以向 SKSpriteNode 添加边框吗,类似于 UIView?

    我感兴趣如果SKSpriteNode可以模仿一个人的行为UIView我可以在哪里指定边框和角半径 self view layer borderColor UIColor lightGrayColor CGColor self view la
  • Excel 中是否有一个类似的命令,其执行与 MATLAB 中的“floor”命令相同的功能[重复]

    这个问题在这里已经有答案了 MATLAB 中的 floor 命令定义为 向负无穷大舍入 Floor X 将 X 的元素四舍五入为最接近的整数 趋向于负无穷大 Excel 中是否有类似的命令 或者有人知道如何在 Excel 中执行相同的操作
  • C DLL 到 Python 回调

    我有一个 Visual C DLL 我在 DLL 中导出了 SetCallback 函数指针 我使用此函数从 python2 7 脚本设置回调函数 我遵循 Python 文档中给出的内容 from ctypes import def myp
  • 如何在 vue-cli 中禁用 ESLint?

    我该如何禁用ESlint在生成的项目中vue cli preLoaders test vue loader eslint include projectRoot exclude node modules test js loader esl
  • Google Sheets 查询图像从查询结果中显示

    当图像从查询中出来时 我不知道如何在 gsheet 的单元格中显示图像 我尝试过各种形式的数组公式和查询组合 但没有任何结果 希望有任何帮助 尝试过这个 A4 A21 是图像 URL ARRAYFORMULA 查询 B4 B21 图像 A4
  • Objective-C 中的美元符号是什么意思?

    CAGradientLayer grad CAGradientLayer layer grad colors array ColRGBA2 1 0 0 1 ColRGBA2 0 1 0 1 ColRGBA2 0 0 1 1 ColRGBA2
  • 如何让 axios 使用 AWS ACM 公共证书?

    我很惊讶地发现 在使用 axios 和 node fetch 时 AWS ACM 颁发的公共证书会触发 无法验证第一个证书 错误 但是 当我从命令行使用curl 时 我没有收到错误 所以我的问题是 为什么节点会有这样的行为 Curl 似乎可
  • 对小文本进行有效搜索

    我有许多小文本 假设大约 500 个单词 和两个数据库 每个数据库大约有 10 000 个条目 关键字 我现在想要处理每个文本并找出文本中包含哪些关键字 保存在两个数据库中的关键字 你们中有人有关于如何有效地做到这一点的好方法吗 我想在搜索
  • 使用正则表达式的缺点

    最近 我的经理建议我不要过度依赖正则表达式 因为它有很多缺点 当我尝试了解更多信息时 我听说它存在诸如正则表达式之类的问题 因为某些对象即使在使用后仍会继续挂在字符串引用上 从而导致内存泄漏 NET RegEx 内存泄漏 调查 https
  • NgRx 和 localStorage 的组合

    我对 NGRX 和状态管理的概念有点陌生 因为我来自后端开发 每当我看到和听到状态管理这个术语时 我脑海中浮现的就是 CQRS 嗯 互联网上的一些文章说它是以此为模式的 我的问题是 在我的角度应用程序中 我可以做类似的事情 从后端获取数据然
  • 减少频繁重新部署(上传)到远程服务器的战争规模

    在开发过程中 我需要经常更新我的 Web 应用程序源代码并将更新后的 war 部署到远程 Tomcat 服务器 在我的连接上上传大型战争 25MB 需要太长时间 大约 30 分钟 效率非常低 有什么办法可以减少战争规模吗 我的项目中有很多外
  • CSS:浮动时忽略div高度

    I m trying to display some pictures All of them have the same width but different height I m trying to do something like
  • 在不同 Perl 版本下运行的程序之间传递对象

    使用从 perl5 6 pl 到 perl5 24 pl 的不同 perl 版本将对象作为输入参数传递时遇到问题 无法从函数 from 5 24 获取返回值 下面提供了有问题的代码 使用windows平台 如何解决这个问题 SharedBe
  • 从 .un~ 文件恢复 vim 文件,无需撤消命令

    如何从 vim 文件恢复undo不点击文件undo 我有一个在添加文本时保存的 vim 文件 然后我运行了一个 python 命令来清空文件的内容 我可以看到文件中包含的一些单词 un 文件 当我尝试在文件中撤消时 它说Already at
  • Java HttpURLConnection 使用 SOCKS 代理而不是 HTTP

    我有一个非常简单的代码 使用 HttpURLConnection 通过代理访问某个网站 System setProperty java net useSystemProxies true System out println Proxy P
  • 如何对项目中的单个文件禁用 ARC?

    我在我的项目中成功使用了 ARC 然而 我遇到了一些文件 例如 在单元测试和模拟对象中 其中 ARC 的规则现在有点脆弱 我记得听说有一种方法可以在每个文件的基础上禁用 ARC 尽管我一直找不到这个选项 这可能吗 如何针对每个文件禁用 AR
  • 下面代码的时间复杂度是多少?

    sum 0 for int i 1 i
  • WPF TextBlock 红色负数

    我试图找出创建样式 触发器以将前景设置为红色 当值 如果您没有使用 MVVM 模型 您可能有 ForegroundColor 属性 那么最简单的方法就是创建一个新的 IValueConverter 将您的背景绑定到您的值 在 MyWindo
  • 使用 Docker Desktop 的 WSL2 上的 Docker 卷

    我刚刚在 Windows 上使用 Docker 尝试 WSL 2 但在安装卷时遇到了问题 version 3 7 services node build container name node hostname node volumes a