我正在尝试使用Boot2Docker在Windows上使用共享文件夹来启动Mongo容器。开始使用时,run -it -v /c/Users/310145787/Desktop/mongo:/data/db mongo我在容器内收到一条警告消息,内容为:
run -it -v /c/Users/310145787/Desktop/mongo:/data/db mongo
WARNING: This file system is not supported.
启动mongo后立即关闭。
有关如何解决此问题的任何提示或技巧?
显然,根据要点和Sev(sevastos),mongo不支持通过VirtualBox共享文件夹安装卷:
sevastos
参见mongoDB Productions Notes:
MongoDB需要一个fsync()在目录上支持的文件系统。 例如,HGFS和Virtual Box的共享文件夹不支持此操作。 所有最简单的解决方案以及数据持久性的正确方法是“ 数据量” : 假设您有一个具有VOLUME [“ /data”] 的容器
MongoDB需要一个fsync()在目录上支持的文件系统。 例如,HGFS和Virtual Box的共享文件夹不支持此操作。
fsync()
所有最简单的解决方案以及数据持久性的正确方法是“ 数据量” :
假设您有一个具有VOLUME [“ /data”] 的容器
/data
# Create a data volume docker create -v /data --name yourData busybox true # and use docker run --volumes-from yourData ...
这并不总是理想的(但下面的内容适用于Mac,作者:Edward Chu(chuyik)):
chuyik
我认为这不是一个好的解决方案,因为数据只是移到了另一个容器上,对不对? 但是它仍然位于容器内,而不是本地系统(mac磁盘)内。 我发现了另一个解决方案,即使用sshfs在boot2docker vm和您的mac之间映射数据,这可能会更好,因为数据没有存储在linux容器中。 创建一个目录以在boot2docker内部存储数据:
我认为这不是一个好的解决方案,因为数据只是移到了另一个容器上,对不对? 但是它仍然位于容器内,而不是本地系统(mac磁盘)内。
我发现了另一个解决方案,即使用sshfs在boot2docker vm和您的mac之间映射数据,这可能会更好,因为数据没有存储在linux容器中。
创建一个目录以在boot2docker内部存储数据:
boot2docker ssh mkdir -p /mnt/sda1/dev
使用sshfs链接boot2docker和mac:
echo tcuser | sshfs docker@localhost:/mnt/sda1/dev <your mac dir path> -p 2022 -o password_stdin
运行安装了mongo的映像:
docker run -v /mnt/sda1/dev:/data/db <mongodb-image> mongod
在相应的boot2docker问题指出来泊坞窗问题12590(问题与- v共享文件夹中的1.6#12590) ,这点工作的周围 使用双斜线 。
使用双斜杠似乎有效。我在本地检查它,它可以工作。
docker run -d -v //c/Users/marco/Desktop/data:/data <image name>
它也适用于
docker run -v /$(pwd):/data