【问题标题】:How to populate the database for latest MongoDB Docker image?如何为最新的 MongoDB Docker 映像填充数据库?
【发布时间】:2021-10-16 23:48:33
【问题描述】:

最近,我无法通过旧的命令集启动基于 mongo 映像的 docker 容器:

docker run -d --rm -v ${PWD}/mydb_data:/data/db --name db mongo

我注意到 mongo 图像现在有一个预先存在但为空的 /data/db 目录。每次我尝试将一些文件填充到容器内的这个 /data/db 目录中时,容器都会失败并自动退出。我的第一个问题是:我错过的这个问题有什么快速解决方法吗?

  • 为了澄清,我的 mydb_data 目录包含 .index 文件和 .wt 文件等。(作为旁注,我从以前的同事那里得到了这个目录,所以我仍在尝试了解更多设置。)

第二个问题是:当我尝试通过一组替代命令在 docker 容器中填充 mongo db 时,我收到类似 below 的日志输出流是否正常通过docker run -it -v ${PWD}/mydb_data:/data/db2 --name db2 mongo创建一个不同命名的新数据库?

{"t":{"$date":"2021-08-13T18:29:32.246+00:00"},"s":"I", "c":"CONTROL", "id" :23285, "ctx":"thread1","msg":"自动禁用 TLS 1.0,强制启用 TLS 1.0 指定 --sslDisabledProtocols 'none'"} {"t":{"$date":"2021-08-13T18:29:32.246+00:00"},"s":"I", "c":"NETWORK", "id":4915701, "ctx":"thread1","msg":"初始化线规范","attr":{"spec":{"incomingExternalClient":{"minWireVersion":0,"maxWireVersion":13},"incomingInternalClient": {"minWireVersion":0,"maxWireVersion":13},"outgoing":{"minWireVersion":0,"maxWireVersion":13},"isInternalClient":true}}} {"t":{"$date":"2021-08-13T18:29:32.247+00:00"},"s":"W", "c":"ASIO", "id":22601, "ctx":"thread1","msg":"NetworkInterface 启动期间未配置 TransportLayer"} {"t":{"$date":"2021-08-13T18:29:32.247+00:00"},"s":"I", "c":"NETWORK", "id":4648601, "ctx":"thread1","msg":"隐式 TCP FastOpen 不可用。如果需要 TCP FastOpen,请设置 tcpFastOpenServer、tcpFastOpenClient 和 tcpFastOpenQueueSize。"} {"t":{"$date":"2021-08-13T18:29:32.248+00:00"},"s":"W", "c":"ASIO", "id":22601, "ctx":"thread1","msg":"NetworkInterface 启动期间未配置 TransportLayer"} {"t":{"$date":"2021-08-13T18:29:32.248+00:00"},"s":"I", "c":"REPL", "id":5123008, "ctx":"thread1","msg":"成功注册 PrimaryOnlyService","attr":{"service":"TenantMigrationDonorService","ns":"config.tenantMigrationDonors"}} {"t":{"$date":"2021-08-13T18:29:32.248+00:00"},"s":"I", "c":"REPL", "id":5123008, "ctx":"thread1","msg":"成功注册 PrimaryOnlyService","attr":{"service":"TenantMigrationRecipientService","ns":"config.tenantMigrationRecipients"}} {"t":{"$date":"2021-08-13T18:29:32.249+00:00"},"s":"I", "c":"CONTROL", "id":4615611, "ctx":"initandlisten","msg":"MongoDB 开始","attr":{"pid":1,"port":27017,"dbPath":"/data/db","architecture":" 64 位","主机":"6e3da962aee5"}} ..........

我尝试创建一个新的 mongo db 已经进行了一个小时,所以我希望检查这是否在正确的轨道上。

谢谢!

【问题讨论】:

    标签: mongodb docker


    【解决方案1】:

    来自Mongo - Official Image

    初始化一个新的实例

    当第一次启动容器时,它将执行 /docker-entrypoint-initdb.d 中的扩展名为 .sh 和 .js 的文件。文件将按字母顺序执行。 .js 文件将由 mongo 使用 MONGO_INITDB_DATABASE 变量指定的数据库(如果存在)执行,否则进行测试。您也可以在 .js 脚本中切换数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2016-06-02
      • 2014-04-10
      • 2023-04-10
      • 2019-03-11
      • 1970-01-01
      相关资源
      最近更新 更多