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

如何设置docker mongo数据量

章永安
2023-03-14
问题内容

我想使用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
        }
    ],

如果我不设置数据量,mongo image就可以工作!

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


问题答案:

尝试检查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内的/ Users共享卷重新安装到uid 999和gid 999(这是mongo
docker镜像使用的),
并使其启动:

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

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

因此,实际的解决方案是尝试
DVC:数据卷容器
,因为现在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)将为您提供其路径(您可以根据需要进行备份)



 类似资料:
  • 我目前正在用下面的代码从Google表单中获取所有值,但是在从那里获取所有值之后,现在如何在另一个表单中设置它们呢? var ss=电子表格应用程序。openById(ID); var值=ss。getDataRange()。getValues(); var ss1=电子表格应用程序。openById(ID1); 我没能做到,有没有办法用for循环做到?

  • 我有一个设置活动在Android Studio,用户将在文本框中输入一个名称。他们将点击保存并进入另一个活动,他们的名字将显示在文本视图中。我在尝试在文本视图中显示名称时遇到了麻烦,我尝试了一些不同的方法,并得到了一些不同的错误,这可能是一些简单的东西,我没有得到或忽略。这是我的错误代码 我的错误是:

  • 我有一个Anylogic模型,其中车辆在GIS地图上从一点移动到另一点。目标点从数据库加载(见图)。通过使用源块,订单详细信息被映射到代理的总体中(订单类型)。这组指令用于引导车辆在GISmap上行驶。现在,我想知道车辆经过的距离。然而,我遇到了一些麻烦。数据库中的位置只能映射到参数类型字符串。这很烦人,因为这意味着我不能使用“distanceTo”函数。是否可以将数据库中的字符串映射到locat

  • 问题内容: 我是Python和Django的新手。 我正在使用PostgreSQL数据库引擎后端配置Django项目,但是每个数据库操作都出现错误。例如,当我跑步时,我得到: 有人可以告诉我发生了什么吗? 问题答案: 你需要安装psycopg2Python库。 安装 下载http://initd.org/psycopg/,然后将其安装在Python PATH下 下载后,轻松解压缩tarball并:

  • 又不想工作,我不知道是怎么回事。 日志包含以下消息: 将项目放在github https://github.com/romanych2021/testjpaspring上

  • 设置数据 如果你想增加值(数据)到图表中,它必须用下面这个方法。 public void setData(ChartData data) { ... } 基类ChartData类封装了所有的数据和信息那是在图表绘制期间需要的。对于每种类型的图表,ChartData的不同的子类(例如LineData)存在应该被用来为图表设置数据。在构造函数中,你能移交数据到ArrayL