Docker 在windows托管的ubuntu容器中列出包含200K文件的共享卷中目录的内容会被卡住 问题
在windows托管的ubuntu容器中列出包含200K文件的共享卷中目录的内容会遇到问题 如何繁殖Docker 在windows托管的ubuntu容器中列出包含200K文件的共享卷中目录的内容会被卡住 问题,docker,windows-subsystem-for-linux,docker-volume,Docker,Windows Subsystem For Linux,Docker Volume,在windows托管的ubuntu容器中列出包含200K文件的共享卷中目录的内容会遇到问题 如何繁殖 在Windows 10上安装Docker Desktop 2.2.0.3(42716)稳定版 配置docker以在WSL(Ubuntu 16发行版)中工作 在tcp://localhost:2375 无TLS时 在WSL中,定义环境变量DOCKER\u HOST=localhost:2375 在WSL中,在[automount]部分的/etc/WSL.conf中,定义root=/ 在Wind
- 在
tcp://localhost:2375 无TLS时
- 在WSL中,定义环境变量
DOCKER\u HOST=localhost:2375
- 在WSL中,在
部分的[automount]
中,定义/etc/WSL.conf
root=/
c:/temp
docker run-it-v/c/temp:/opt ubuntu bash
cd/opt
,然后运行ls
ls
命令将开始列出c:/temp文件夹中的所有文件。这可能需要一些时间,但它几乎会立即开始 实际结果 未打印任何内容,外壳不响应。
此外,CTR C不会中断
ls
命令。我发现停止容器的唯一方法是重新启动Docker DesktopFYI--
ls
,默认情况下进行排序;因此,在开始打印任何内容之前,它需要收回整个列表<代码>查找-相比之下,maxdepth 1将以操作系统返回的速度打印内容。请注意,根据Docker和主机之间使用的远程处理层,这可能仍然很慢(可以想象,该工具中的某些内容可能会增加对完整目录迭代的要求,而find
则没有);但它将更接近检索内容的实际性能。我尝试了你的建议。“.”立即打印出来,然后外壳像以前一样卡住了。这告诉我们一些关于该行为的有用信息——延迟发生在将名字返回到来宾内核之前。此外,它通常意味着该协议相当重——不仅通过系统调用直接代理,在这种情况下,它可以立即返回,而且请求完整列表。我在Docker for Windows repo上发布了一个新问题: