docker - 使用 WSL 上的 docker-compose 安装的卷仅部分出现并且为空
问题描述
这是我的 docker-compose 文件(对不起,图像,但 WSL 终端不会让我复制粘贴缩进文本):
目的是external_stuff
包含我的 mounts 目录。当我查看 mounts 目录时,我清楚地看到了我的驱动器:
但是,当我运行时,docker-compose up
我只看到一个文件夹(“c”),而不是我的所有驱动器,当我导航到该文件夹时,它显示为空:
我试过跑步sudo -E docker-compose up
,但这没什么区别。
这是怎么回事,我该如何解决?
我的系统:
- Docker 桌面版 2.1.0.5
- Windows 内部版本 1903 / 操作系统内部版本 18362.476
- 我想我正在运行 wsl 1 但我真的不知道。如果我
wsl -l
从 powershell 运行,它会吐出一堆命令行选项。 - 我直接从 Windows 中的“Ubuntu”应用程序运行 Ubuntu 18.04.2 LTS。
Dockerfile:
FROM python:3
解决方案
Docker Desktop 在虚拟机上运行,您需要与它共享您的驱动器。通过 WSL 运行 Docker Desktop 时,您仍然需要共享您正在使用的驱动器。
为此,您只需进入Docker Desktop Settings > Shared Drives
然后允许共享您的驱动器。
然后你可以通过 WSL 使用 linux 命令、linux 路径等在 Docker Desktop 上工作。
免责声明:WSL 和 Docker Desktop 确实不稳定,具有共享卷、权限、inotify 事件等。您可以在此问题的答案中找到有关这些问题的更多信息:Docker is not recompiling on changed any in angular project in windows
推荐阅读
- angular - 如何在 Angular 的“页面 - 管理仪表板模板”中路由新组件
- java - 有没有办法在无界源 pcollection 中设置时间戳?
- angular - 当元素的“点击”事件存在时如何检测元素外部的点击
- php - 固定链接结构显示问号
- javascript - 如何在 Sequelize.js 中的一行中创建新记录和关联
- bash - 如何在bash答案中优雅地存储和回显多行不起作用?
- java - 通过 Socksify(Open Text Socks Client)从 STS 连接 MS Azure 中的 sqlserver 数据库时出现问题
- ios - Objective-C 和 Swift 中是否有相当于 Java 的 TimeUnit 类?
- windows - 我的 ffmpeg 输出总是在最后添加额外的 30 秒静音
- java - Sonarqube 是否支持强制执行编码标准的规则