我试图了解文件结构在 docker 容器内的工作原理,以及了解卷和挂载。
让我困惑的一件事是当我 docker exec -it <container id> /bin/bash
放入容器中,我不能 cd
进入一些目录。
例如,如果我运行 cd logs
,我希望能够运行 ls
获取日志文件列表,但我得到 No such file or directory
继 cd logs
命令。
但是我可以运行 cd wwwroot
并四处导航。
在下面的终端图像中,您可以看到 ls
的结果一旦我执行了。
我可以运行cat logs\2019-07-04.log.json
例如,将文件内容打印到屏幕上。但我还是做不到 cd logs
.
我也尝试过以下方法:
这就像文件路径是一个“键”而不是一个正确的目录结构。
所以这似乎仅限于 directories
应用程序在运行时写入,而构建时加载的文件具有正确的文件结构。
这是否特定于 Linux 容器上的 .NET Core?为什么会这样?
最佳答案
这是因为没有名为 logs
的文件夹,您创建了名为 logs\2019-07-04.log.json
和 logs\2019-07-05.log.json
的文件来解决此问题:
首先创建一个新文件夹mkdir logs
然后将文件移动到文件夹mvlog\\2019*logs/
为了仅使用一个 \
,需要使用两个 \\
。
那么你应该能够 ls。
问候;)
关于linux - Docker linux - 无法使用 docker exec (ASP.NET Core) cd 进入某些目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56899181/