当前位置: 首页 > 面试题库 >

在共享文件夹上运行Mongo的Boot2Docker(在Windows上)(不支持此文件系统)

鲜于子琪
2023-03-14
问题内容

我正在尝试使用Boot2Docker在Windows上使用共享文件夹来启动Mongo容器。开始使用时,run -it -v /c/Users/310145787/Desktop/mongo:/data/db mongo我在容器内收到一条警告消息,内容为:

WARNING: This file system is not supported.

启动mongo后立即关闭。

有关如何解决此问题的任何提示或技巧?


问题答案:

显然,根据要点和Sev(sevastos),mongo不支持通过VirtualBox共享文件夹安装卷:

参见mongoDB Productions
Notes

MongoDB需要一个fsync()在目录上支持的文件系统。
例如,HGFS和Virtual Box的共享文件夹不支持此操作。

所有最简单的解决方案以及数据持久性的正确方法是“
数据量”

假设您有一个具有VOLUME [“ /data”] 的容器

# Create a data volume
docker create -v /data --name yourData busybox true
# and use
docker run --volumes-from yourData ...

这并不总是理想的(但下面的内容适用于Mac,作者:Edward Chu(chuyik)):

我认为这不是一个好的解决方案,因为数据只是移到了另一个容器上,对不对?
但是它仍然位于容器内,而不是本地系统(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


 类似资料:
  • null 在列出的3个选项中,只有最后一个可以使用projectile(可能还有其他Emacs包)。但我需要能够访问/修改文件从Windows以及,所以这不是一个可行的选择。 有没有人为此找到好的解决方案?

  • 您可以使用共享文件夹 Microsoft 管理控制台 (MMC) 管理单元集中管理计算机上的文件共享。共享文件夹允许您创建文件共享和设置权限,查看和管理打开的文件以及连接到计算机上文件共享的用户。

  • 我的问题是:如何在共享网络主机的目录(而不是根目录)中运行laravel应用程序? 对于我的一些客户,我在他们选择的共享虚拟主机的根文件夹中运行Laravel应用程序,并从URL中删除 /public部分。为了完成这项工作,我将index.php移动到根文件夹,并将信息从index.php更改为: 现在我知道这可能会导致安全问题,但我已经找到了解决方案,共享网络主机的情况下。 我用来进行此更改的.

  • 问题内容: 我有一个名为helloworld.jar的JAR文件。为了运行它,我在命令行窗口中执行以下命令: 这可以正常工作,但是我如何双击执行它?我需要安装任何软件吗? 问题答案: 最简单的方法可能是升级或重新安装Java Runtime Environment(JRE)。 或这个: 打开Windows资源管理器,从“工具”中选择“文件夹选项…” 单击文件类型选项卡,向下滚动并选择JAR文件类型

  • 我的环境: SQL Server 2012 BI版 本地开发机器 共享网络文件夹和驱动器 null 我试过什么: WorkingDirectory:本地驱动器-解决方案有效 WorkingDirectory:共享文件夹-解决方案不会失败,但不会创建文件。我的帐户对该文件夹具有完全权限。 WorkingDirectory:映射驱动器使用Net USE,但未创建文件。 我已经部署了解决方案并运行了SQ

  • 问题内容: 我需要将文件和文件夹隐藏在Windows和Linux上。我知道在后面加上“。” 文件或文件夹的开头将使其在Linux上隐藏。如何在Windows上隐藏文件或文件夹? 问题答案: 对于Java 6及更低版本, 您将需要使用本地调用,这是Windows的一种方法 您应该了解有关win32-api或Java Native的知识。