我正在Windows 10上运行linux docker容器。我需要我的主机才能访问我的容器生成的数据。如果我更新容器的图像,我还需要数据保持不变。
我在主机上创建了一个文件夹(在NTFS格式化驱动器上),在docker设置中,我与docker共享该驱动器。然后我创建了安装了主机目录的容器(使用docker run命令上的-v选项)
问题是docker会在主机上的共享驱动器上创建一个cifs mount。看起来CIFS协议不区分大小写。我创建了两个文件:
/数据/测试 /数据/检验
但是只会生成一个文件。我设置内核以支持区分大小写的文件。例如,如果我在cygwin bash中挂载相同的文件夹,我可以毫无问题地创建这两个文件。我认为问题在于CIFS实施。
我目前解决这个问题的想法:
使用SAMBA服务器创建另一个Linux容器。在该容器上创建一个卷:
docker run -d -v / data --name dbstore --name a-samba-server
然后在我的容器中使用该卷:
docker run -d --volumes-from dbstore --name my-container my-container-image
然后我需要在samba服务器中共享/数据并在我的主机上创建该共享的地图。
这两个解决方案看起来都非常繁琐,我想知道是否有任何方法我可以直接使用Docker原生创建的CIFS共享来解决这个问题。