尝试检查docker日志以查看容器停止并进入“现有”模式时发生的情况。
另请参阅指定卷的完整路径是否有帮助:
docker run -p 27017:27017 -v /home/<user>/data:/data/db ...
OP添加:
docker logs mongo
exception in initAndListen: 98
Unable to create/open lock file: /data/db/mongod.lock
errno:13 Permission denied
Is a mongod instance already running?
terminating 2016-02-15T06:19:17.638+0000
I CONTROL [initandlisten] dbexit: rc: 100
这是文件所有权/权限问题(与该Docker映像无关),或者将boot2docker与VB一起使用,或者将Vagrant @R_95_2419@与VB一起使用。
尽管如此,我还是设法破解了所有权, 并使其启动:
$ boot2docker ssh
$ sudo umount /Users
$ sudo mount -t v@R_95_2419@sf -o uid=999,gid=999 Users /Users
但是…由于不支持文件系统类型,mongod崩溃(mmap在v@R_95_2419@sf上不起作用)
因此,实际的解决方案是尝试 ,因为现在mongodb doc提到:
MongoDB需要一个fsync()
在目录上支持的文件系统。 例如,HGFS和Virtual @R_95_2419@的共享文件夹不支持此操作。
所以:
由于Virtual@R_95_2419@共享文件夹的工作方式,无法将MongoDB安装到OSX。
对于DVC(数据卷容器),请尝试docker volume create
:
docker volume create mongodbdata
然后将其用作:
docker run -p 27017:27017 -v mongodbdata:/data/db ...
看看效果更好。
正如我在评论中提到的):
A docker volume inspect mongodbdata
(请参阅docker volume inspect
)将为您提供其路径(您可以根据需要进行备份)