mongodb - 由于缺少 featureCompatibilityVersion 文档,无法启动 mongod。 Docker 问题

标签 mongodb docker docker-compose

我有一个 dockerized 服务,它包含一个带有 API REST 的服务器和一个 mongoDB 存储系统。

首先我有这两个 docker hub 的图像:

  • mongo:3.6.0
  • 节点: Alpine

我正在尝试使用来 self 的服务器的快照创建备份。当我执行恢复并开始唤醒服务时,mongoDB 崩溃了。这是错误日志:

mongo_1  | 2018-01-09T18:50:17.770+0000 F STORAGE  
[initandlisten] Unable to start up mongod due to missing featureCompatibilityVersion document.

mongo_1  | 2018-01-09T18:50:17.774+0000 F STORAGE  
[initandlisten] Please run with --repair to restore the document.

mongo_1  | 2018-01-09T18:50:17.774+0000 F -       
 [initandlisten] Fatal Assertion 40652 at src/mongo/db/db.cpp 660

mongo_1  | 2018-01-09T18:50:17.775+0000 F -        [initandlisten]

这是我的 Dockerfile:

FROM node:alpine


RUN mkdir /CSCFUTSAL
WORKDIR /CSCFUTSAL


COPY package.json /CSCFUTSAL

RUN cd /CSCFUTSAL

RUN npm install

RUN npm install -g @angular/cli

COPY . /CSCFUTSAL

RUN ng build --prod

EXPOSE 80

还有我的 docker-compose.yml:

version: '2'
services:
 mongo:
  image: mongo:3.6.0
  volumes:
   - /data/mongodb/db:/data/db
  ports:
   - "27017:27017"

 api:
  build: .
  command: node ./bin/www
  volumes:
   - api-img:/CSCFUTSAL/public/plantillas
  ports:
   - "80:80"
  links:
   - mongo

volumes:
  api-img:
    driver: local

我不知道如何在不丢失存储数据的情况下修复它。

最佳答案

当您在 Docker 中运行它时,您需要在容器中运行 mongod --repair 命令。确保您备份了要修复的数据,然后运行如下命令:

docker container run --rm -v /data/mongodb/db:/data/db mongo:3.6.0 mongod --repair

这是假设您的本地数据位于 /data/mongodb/db,这是您的 Docker compose 文件所建议的。

关于mongodb - 由于缺少 featureCompatibilityVersion 文档,无法启动 mongod。 Docker 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48174994/

相关文章:

mongodb - 如何执行查找仅获取第一个元素

javascript - json 被转换为 BSON

docker - 使用Kafka和Zookeeper运行微服务时docker-compose up错误

javascript - 如何重新排序存储在 Mongo 中的这个数组中的项目?

key - MongoDB - 多个 $or 操作

linux - 从安装 Zeppelin 的本地计算机到 Docker Spark 集群的连接

node.js - Docker容器: Huge size for Node. 基于js的微服务

emacs - 从 Emacs 在 Docker 容器上运行命令

laravel - 如何在docker容器中安装composer?

postgresql - Docker:Springboot容器无法连接到PostgreSql容器连接错误