我正在尝试部署一个 mongo 映像,该映像启用具有主从的副本,并通过 /data/db/ 目录中的卷恢复信息
当我不进行任何复制时,数据库可以正常工作,不需要 directConnect 并恢复所有文档,但是当我配置副本时,它不会恢复信息
我的 docker-compose 没有复制:
version: "3.7"
services:
dbComMongoGR:
container_name: dbComMongoTR
image: mongo:5.0.5
restart: always
environment:
- MONGO_INITDB_ROOT_USERNAME=ComAdmin
- MONGO_INITDB_ROOT_PASSWORD=C0m202Z
- MONGO_INITDB_DATABASE=TransactionesMD
volumes:
- ./databdTR:/data/db
ports:
- 27017:27017
我的复制设置:
Dockerfile:
FROM mongo:5.0.5
COPY mongod.conf /etc/mongod.conf
EXPOSE 27017
RUN echo '10.192.85.46 dbRepComMongoTR' >> /etc/hosts \&& echo '10.192.85.28 dbComMongoTR' >> /etc/hosts
CMD ["mongod", "--config", "/etc/mongod.conf","--dbpath","/data/db"]
mongod.conf:
net:
port: 27017
bindIp: 127.0.0.1,dbComMongoTR
replication:
replSet: "myRs0"
docker-compose.yml:
version: '3.7'
services:
dbRepMongoTR:
container_name: dbComMongoTR
image: mongorep:1.0
ports:
- 27017:27017
restart: always
volumes:
- ./databdTR:/data/db
environment:
- MONGO_INITDB_ROOT_USERNAME=ComAdmin
- MONGO_INITDB_ROOT_PASSWORD=C0m202Z
- MONGO_INITDB_DATABASE=TransactionesMD
command: bin/sh -c "mongod --replSet myRs0 --bind_ip 127.0.0.1,dbComMongoTR --dbpath /data/db"
\&& echo '10.192.85.46 dbRepComMongoTR' >> /etc/hosts
\&& echo '10.192.85.28 dbComMongoTR' >> /etc/hosts
我需要恢复这个备份,原来的DB有150GB的数据。
这样,要连接到mongo,我必须使用直接连接,但它不会恢复卷信息,我对目录中的容器运行docker exec,确实有所有文件
从主服务器到/databdTR目录我将权限更改为777作为解决方案测试,它不起作用
--storageEngine wiredTiger
必须添加到启动命令中,完整的命令如下所示:
command: bin/sh -c "mongod --replSet myRs0 --bind_ip 127.0.0.1,dbComMongoTR --dbpath /data/db --storageEngine wiredTiger"
将其添加到 Dockerfile