安装到linux docker容器卷的Windows文件夹不显示所有文件夹

问题描述 投票:0回答:1

我有一个使用高山图像创建的docker容器,并在Windows 10 pro上的docker-desktop上运行它。目的是将其用作sftp服务器。

我已将D驱动器作为卷安装在docker-compose文件中。

在入口点脚本中,我使用以下脚本段在容器中创建了两个文件夹folder1和folder2,位于已装入卷的位置:

log "Creating folder structure"

if ! [ -d "/home/foo/mountlocation/folder1" ]
then
   `mkdir -p /home/foo/mountlocation/folder1`
   log "folder1 created!"
fi

if ! [ -d "/home/foo/mountlocation/folder2" ]
then
    `mkdir -p /home/mountlocation/folder2`
    log "folder2 created!"
fi

运行docker-compose时,我看到所有这三个日志语句输出到控制台。

文件夹folder1和folder2都已创建并显示在我的D驱动器中。

当我打入我的容器,cding到/ home / foo / mountlocation /文件夹并使用ls -a命令时,folder2被列为文件夹的唯一内容。

如果我在Windows中的D驱动器中创建文件夹folder3和folder1以及folder2,则会再次显示容器中的ls -a,文件夹2和文件夹3。

我可以cd进入folder1,即使它没有列出。我可以使用命令打印当前文件夹的名称

printf '%s\n' "${PWD##*/}"

而输出是

folder1

当我进入容器时,文件夹1不可见。

我需要输入点脚本创建的两个文件夹都可见。

它怎么可能存在但不可见?当我构建和调出容器时,我怎么能这样做,两个文件夹都可见?

linux docker volume docker-desktop
1个回答
0
投票

问题得到了解决。主机上安装的文件夹位于USB驱动器上,看起来它与docker的效果不佳。我将mount文件夹更改为主机上的hdd位置,并且工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.