我有一个从高山映像创建的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不可见。
我需要由入口点脚本创建的两个文件夹都可见。
它如何存在但不可见?如何建立和启动容器时,两个文件夹都可见?
答案 0 :(得分:0)
问题已解决。主机上的已挂载文件夹位于USB驱动器上,似乎与docker配合不佳。 我将安装文件夹更改为主机上的硬盘位置,并且工作正常。