我有一个使用高山图像创建的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驱动器中。
当我打入我的容器,cd
ing到/ home / foo / mountlocation /文件夹并使用ls -a
命令时,folder2被列为文件夹的唯一内容。
如果我在Windows中的D驱动器中创建文件夹folder3和folder1以及folder2,则会再次显示容器中的ls -a
,文件夹2和文件夹3。
我可以cd
进入folder1,即使它没有列出。我可以使用命令打印当前文件夹的名称
printf '%s\n' "${PWD##*/}"
而输出是
folder1
。
当我进入容器时,文件夹1不可见。
我需要输入点脚本创建的两个文件夹都可见。
它怎么可能存在但不可见?当我构建和调出容器时,我怎么能这样做,两个文件夹都可见?
问题得到了解决。主机上安装的文件夹位于USB驱动器上,看起来它与docker的效果不佳。我将mount文件夹更改为主机上的hdd位置,并且工作正常。