繁体   English   中英

docker 容器中 mongodb 中的修复命令

[英]repair command in mongodb in docker container

我的客户端有 mongodb 在 docker 容器中运行,一天早上数据库崩溃并且日志显示“检测到不干净的关闭”。 我尝试修复 mongodb 但无法修复,因为它在 docker 容器下运行。 原因是因为我必须关闭 mongodb 才能运行修复命令,一旦我关闭 mongodb 然后 docker 将我抛出容器,因为只有一个进程正在运行并且当它停止时容器也停止了,现在我无法当我离开容器时运行任何 mongod 命令,并且容器与 mongod 实例一起停止。

那么,任何人都可以帮助我解决这个问题,我如何从 docker 容器外部运行修复命令?

我可以在不停止 mongod 的情况下运行修复命令吗?

请帮忙 !!!

谢谢伊尔沙德

下面的示例命令修复了我的 Wt 文件损坏问题。

docker run -it -v <path>:/data/db <image-name> mongod --repair

只需将路径和图像名称替换为您的

今天早上我的 Mac 决定重新启动并安装更新时,我也遇到了同样的事情,grr。

通常,我的 mongo 容器是使用docker-compose.yml docker-compose up命令启动的,该命令使用docker-compose.yml文件进行所有设置,例如...

version: "3"
services:
  mongo:
    image: mongo:3.6.12
    container_name: mongo
    ports:
     - 27017:27017
    volumes:
     - ~/mongo/data/db:/data/db
     - ~/mongo/db/configdb:/data/configdb

要使用我所做的这些设置运行基本的docker命令...

# Kill any existing mongo containers
docker rm mongo

# Repair the db
docker run -it -v ~/mongo/data/db:/data/db -v ~/mongo/db/configdb:/data/configdb --name mongo -d mongo:3.6.12  mongod --repair

# Has it finished the repair yet?
docker ps -a

大约一分钟后,容器退出,数据库被修复,我能够再次使用docker-compose运行 mongo。

version: '3.9'
services:
  mongo:
    image: mongo
    command: --repair

这就是我们如何通过 docker-compose 中的 --repair。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM