docker - WSL 中的 Docker 绑定挂载不显示文件
问题描述
我试图从 WSL 内部使用 docker 客户端,连接到 Windows 上的 docker 引擎。我已经在 Windows 的 2375 端口上公开了 docker 引擎,在 WSL 中设置 DOCKER_HOST 环境变量后,我可以通过运行 docker ps 来验证它是否有效。
当我尝试从 WSL 将目录挂载到 docker 容器中时,问题就出现了。例如:
- 我在 WSL (
mkdir ~/dockertest && touch ~/dockertest/example.txt
)上的主文件夹中创建了一个目录和文件 ls ~/dockertest
显示我的文件已创建- 我现在启动一个 docker 容器,安装我的 docker 测试文件夹(
docker run -it --rm -v ~/dockertest:/data alpine ls /data
) - 我希望在 docker 容器中看到“example.txt”,但这似乎没有发生。
有什么想法我可能会错过吗?
解决方案
在https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawless#ensure-volume-mounts-work上有关于 WSL 中 Docker 设置的很好的说明- 解决了大多数我的问题。对我来说最大的技巧是绑定挂载目录。您必须在 WSL 中使用 Docker 守护程序能够翻译的路径,例如 /c/Users/rfay/myproject。
推荐阅读
- python - 我如何在 django rest 框架中获取字符串格式的主键
- reactjs - 如何获取 MS 图形用户照片作为 blob url 并将它们作为 blob url 存储在应用程序数据库中
- c++ - 数组的累积乘积:std::accumulate vs loop
- javascript - Google AppScript 不会触发 html 的 onclick
- macos - 如何完整且完整地配置 WxWidgets 的 CMake 安装/构建目录?
- django - 您正在尝试添加一个不可为空的字段“代理”以在没有默认值的情况下进行引导;我们不能这样做(数据库需要一些东西来填充现有的行
- asp.net-core - 如何禁用预编译 MVC cshml 页面 ASP.NET Core 5.0
- angular - 是否可以使用依赖注入提供带有 Angular 的 RouteGuard?
- iis - 在 IIS 8 中禁用跨域限制
- mysql - MySQL 在第 1 行(第 -1 行)报告错误 - 为什么?