如何设置docker mongo数据量

我想使用Dockerizing MongoDB并将数据存储在本地卷中。

但是..失败了…

它具有mongo:latest图像

kerydeMacBook-Pro:~ hu$ docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

mongo latest b11eedbc330f 2 weeks ago 317.4 MB

ubuntu latest 6cc0fc2a5ee3 3 weeks ago 187.9 MB

我想将单声道数据存储在〜/ data中。所以-

kerydeMacBook-Pro:~ hu$ docker run -p 27017:27017 -v ~/data:/data/db --name mongo -d mongo

f570073fa3104a54a54f39dbbd900a7c9f74938e2e0f3f731ec8a3140a418c43

但是…行不通…

docker ps-没有守护进程mongo

kerydeMacBook-Pro:~ hu$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

尝试运行“ mongo”-失败

kerydeMacBook-Pro:~ hu$ docker exec -it f57 bash

Error response from daemon: Container f57 is not running

码头工人检查蒙哥

kerydeMacBook-Pro:~ hu$ docker inspect mongo

[

{

"Id": "f570073fa3104a54a54f39dbbd900a7c9f74938e2e0f3f731ec8a3140a418c43",

"Created": "2016-02-15T02:19:01.617824401Z",

"Path": "/entrypoint.sh",

"Args": [

"mongod"

],

"State": {

"Status": "exited",

"Running": false,

"Paused": false,

"Restarting": false,

"OOMKilled": false,

"Dead": false,

"Pid": 0,

"ExitCode": 100,

"Error": "",

"StartedAt": "2016-02-15T02:19:01.74102535Z",

"FinishedAt": "2016-02-15T02:19:01.806376434Z"

},

"Mounts": [

{

"Source": "/Users/hushuming/data",

"Destination": "/data/db",

"Mode": "",

"RW": true

},

{

"Name": "365e687c4e42a510878179962bea3c7699b020c575812c6af5a1718eeaf7b57a",

"Source": "/mnt/sda1/var/lib/docker/volumes/365e687c4e42a510878179962bea3c7699b020c575812c6af5a1718eeaf7b57a/_data",

"Destination": "/data/configdb",

"Driver": "local",

"Mode": "",

"RW": true

}

],

但是,当设置数据量时,它不是…谁可以帮助我?

回答:

尝试检查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

一个错误:13是30所要解决的问题。

此评论添加:

这是文件所有权/权限问题(与该Docker映像无关),或者将boot2docker与VB一起使用,或者将Vagrant box与VB一起使用。

尽管如此,我还是设法破解了所有权, 并使其启动:

$ boot2docker ssh

$ sudo umount /Users

$ sudo mount -t vboxsf -o uid=999,gid=999 Users /Users

但是…由于不支持文件系统类型,mongod崩溃(mmap在vboxsf上不起作用)

因此,实际的解决方案是尝试

,因为现在mongodb doc提到:

MongoDB需要一个fsync()在目录上支持的文件系统。

例如,HGFS和Virtual Box的共享文件夹不支持此操作。

所以:

由于Virtualbox共享文件夹的工作方式,无法将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)将为您提供其路径(您可以根据需要进行备份)

以上是 如何设置docker mongo数据量 的全部内容, 来源链接: utcz.com/qa/419660.html

回到顶部