gpt4 book ai didi

mongodb - Docker mongodb-将磁盘上的数据库添加到容器

转载 作者:行者123 更新时间:2023-12-02 21:28:00 24 4
gpt4 key购买 nike

我在Windows上运行Docker,并且在磁盘C:\ data \ db上有一个包含一些条目的数据库。

我想将此数据库添加到我的容器中。我尝试了许多方法来执行此操作,但是失败了。

我试过了:docker run -p 27017:27017 -v //c/data/db:/data/db --name mongodb devops-mongodb
在我的dockerfile中,我有:

RUN mkdir -p /data/db
VOLUME /data/db

但这不会将磁盘上的当前数据库添加到容器中。它会创建一个新的/ data / db目录,并保留我添加到其中的数据。

“将主机目录挂载为数据卷”下的 https://docs.docker.com/userguide/dockervolumes/文档专门告诉我执行-v // c / data / db:/ data / db,但这不起作用。

有任何想法吗?

最佳答案

您正在使用Boot2Docker(在虚拟机中运行)。 Boot2Docker使用VirtualBox guest 添加项使Windows计算机上的目录可供虚拟机内部运行的Docker使用。

默认情况下,仅C:\Users目录(在Windows上)或/Users/目录(在OS X上)与虚拟机共享。这些目录之外的任何内容均不会与虚拟机共享,这将导致Docker在该卷的指定位置创建一个空目录。

要与虚拟机共享C:\Users\之外的目录,您必须手动配置Boot2Docker以共享这些目录。您可以在自述文件的VirtualBox guest addition部分中找到所需的步骤;

If some other path or share is desired, it can be mounted at run time by doing something like:


$ mount -t vboxsf -o uid=1000,gid=50 your-other-share-name /some/mount/location

It is also important to note that in the future, the plan is to have any share which is created in VirtualBox with the "automount" flag turned on be mounted during boot at the directory of the share name (ie, a share named home/jsmith would be automounted at /home/jsmith).



请注意,使用VirtualBox guest 添加功能确实会对性能造成严重的影响(读/写该卷确实会很慢)。这可能对开发很好,但应谨慎使用。

关于mongodb - Docker mongodb-将磁盘上的数据库添加到容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32038409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com