当前状态
- 我在一台服务器上运行了一个没有副本集标志(
--replSet
)的MongoDB实例 - 我在数据库中存储了一些以前的信息,并希望保留这些信息
目的
- 我希望重启容器时将守护程序的
--replSet "my-set"
标志设置为副本集并保留先前的信息
实施
我正在尝试遵循使用Docker设置MongoDB副本集的教程,并在我的本地机器上尝试它。
Create a standard MongoDB Docker container w/o the flag
replSet
set which represents the current state:docker run -d --name mongo_rs --publish 37017:27017 mongo
Using the MongoDB Compass I connected to the DB and added some dummy information to a Database called
test
and collection calledplayers
I stop the container:
docker container stop mongo_rs
从这里开始,我希望在mongo_rs
容器中添加--replSet "my-set"
,并根据教程中提到的方法通过mongo
Shell配置副本集。有哪些可能的解决方案?
CMD
。您只能更新此处提到的内容:docker update
。备份您的数据库并使用您想要的标志启动一个新的容器。 - tgogos/var/lib/docker/containers/<container_id>/config.json
,进行修改,然后重新启动docker守护程序。 - tgogosdocker-compose
文件编写的,那么这件事会更容易吗? - Shan-Desaidocker-compose
会有帮助。我会使用docker exec -it mongo_rs bash
进入mongo容器,然后使用mongoexport
将数据库保存到文件中。您可以使用docker cp ...
将此文件复制到主机上,然后我会启动一个新的mongo容器,并尝试使用mongoimport
从头开始创建数据库。 - tgogos