0
我正在尝试为Docker撰写文件中的Mongo实例编写一些脚本。我好像第二个命令永远不会运行(它应该将此容器作为repl集中的主要启动项)。这里是我的命令:Mongo Docker镜像的多个命令
docker run -d mongo /bin/bash -c "mongod --replSet \"test\"; mongo --eval \"rs.initiate({_id:'test',members:[{_id:0,host:'localhost:27017'}]})\""
当我然后执行到容器并执行一个rs.config,它说明没有运行。那么,我该如何去发布多个命令来启动Mongo容器呢?
我不认为这是问题。我做了码头运行-d mongo/bin/bash -c“mongod --replSet \”test \“”IMMEDIATELY后跟docker exec PID/bin/bash -c“mongo --eval \”rs.initiate({_ id: '测试',成员:[{_ ID:0,主机: '本地主机:27017'}]})\ “”。一切正常。所以我试着码头运行-d mongo/bin/bash -c“mongod --replSet \”test \“&sleep 10; mongo --eval \”rs.initiate({_ id:'test',members:[{_ id :0,host:'localhost:27017'}]})\“”,我仍然遇到同样的问题。 – Hohohodown
我想通了一半。 docker run -d mongo/bin/bash -c“mongod --replSet \”test \“&sleep 10; mongo --eval \”rs.initiate({_ id:'test',members:[{_ id:0 ,host:'localhost:27017'}]})\“; sleep 10000000000” 除了现在容器没有“附加”(当容器将在mongod进程结束时退出)到mongod进程之外,它只是一个愚蠢的睡眠很长一段时间。我对linux的了解不多,不知道如何将它重新连接到mongod进程。 – Hohohodown
好吧我也想出了那部分。 docker run -d mongo/bin/bash -c“mongod --replSet \”test \“&sleep 10; mongo --eval \”rs.initiate({_ id:'test',members:[{_ id: 0,host:'localhost:27017'}]})\“; wait $(pgrep mongod)” – Hohohodown