Mongo Docker镜像的多个命令

时间:2017-02-08 23:30:57

标签: mongodb docker

我正在尝试为Docker撰写文件中的Mongo实例编写一些设置脚本。我好像第二个命令永远不会运行(这应该将此容器作为repl集中的主要容器启动)。这是我的命令:

docker run -d mongo /bin/bash -c "mongod --replSet \"test\"; mongo --eval \"rs.initiate({_id:'test',members:[{_id:0,host:'localhost:27017'}]})\""

当我然后执行到容器并执行rs.config时,它表示intiate尚未运行。那么,我如何向Mongo容器的启动发出多个命令呢?

1 个答案:

答案 0 :(得分:1)

看起来你正在启动mongo守护进程作为第一个命令。

你确定这个命令会返回吗?在容器中“docker exec”之前,它似乎没有完成执行。这可能就是没有执行第二个命令的原因。

也许尝试将命令放在“背景”中并加上“&”

docker run -d mongo /bin/bash -c "mongod --replSet \"test\" &; mongo --eval \"rs.intiate({_id:'test',members:[{_id:0,host:'localhost:27017'}]})\""
相关问题