我试图了解docker容器中文件结构的工作方式,并了解卷和装载。
让我感到困惑的一件事是,当我docker exec -it <container id> /bin/bash
进入一个容器时,我无法cd
进入某些目录。
例如,如果我运行cd logs
,则希望能够运行ls
来获取日志文件列表,但是我会在{{1 }}命令。
但是我可以运行No such file or directory
并四处浏览。
在下面的终端图像中,一旦执行,您就可以看到cd logs
的结果。
例如,我可以运行cd wwwroot
,以将文件内容打印到屏幕上。但我仍然无法ls
。
我也尝试了以下方法:
这就像文件路径是“键”而不是适当的目录结构一样。
因此,这似乎仅限于应用程序在运行时写入的cat logs\2019-07-04.log.json
,而在构建时加载的文件具有正确的文件结构。
这是特定于Linux容器上的.NET Core吗?为什么这样工作?
答案 0 :(得分:1)
这是因为您没有创建名为logs
和logs\2019-07-04.log.json
的文件的文件夹logs\2019-07-05.log.json
来解决此问题:
首先创建一个新文件夹mkdir logs
然后将文件移动到文件夹mv logs\\2019* logs/
为了仅使用一个\\
,必须使用双\
。
然后您应该可以ls。
关于;)