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

时间:2018-01-09 18:59:58

标签: mongodb docker docker-compose

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

首先,我有两个docker hub图像:

  • 蒙戈:3.6.0
  • 节点:高山

我正在尝试使用来自我服务器的快照创建备份。当我执行恢复并开始唤醒服务时,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

我不知道如何修复它而不会丢失存储的数据。

2 个答案:

答案 0 :(得分:0)

答案在于错误。

  • 只需转到安装“mongod.exe”的位置即可。 注意:对于Windows操作系统,它通常安装在C:\Program Files\MongoDB\Server\3.6\bin
  • 在同一位置打开cmd。
  • 运行以下命令:mongod.exe --repair

此命令将进行必要的赔偿。

之后,只需从同一位置运行mongod.exe

以上解决方案对我有用。我希望这能解决你的问题。

答案 1 :(得分:0)

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

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

假设您的本地数据位于/data/mongodb/db,您的Docker撰写文件就是这样。