挂载至linux docker容器卷的Windows文件夹未显示所有文件夹

时间:2019-04-30 04:16:39

标签: linux docker volume docker-desktop

我有一个从高山映像创建的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时,我看到所有这三个日志语句输出到控制台。

文件夹1和文件夹2均已创建,并显示在我的D盘中。

当我将bash放入容器中时,cd进入/ home / foo / mountlocation /文件夹并使用ls -a命令,文件夹2被列为该文件夹的唯一内容。

如果我在Windows中的D驱动器中沿着文件夹1和文件夹2创建文件夹,文件夹3,然后再次在容器(文件夹2和文件夹3)中显示ls -a

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

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

,输出为

folder1

当我通过sftp进入容器时,folder1不可见。

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

它如何存在但不可见?如何建立和启动容器时,两个文件夹都可见?

1 个答案:

答案 0 :(得分:0)

问题已解决。主机上的已挂载文件夹位于USB驱动器上,似乎与docker配合不佳。 我将安装文件夹更改为主机上的硬盘位置,并且工作正常。