从shell到docker容器执行多个命令

时间:2017-05-24 07:01:21

标签: linux bash mongodb shell docker

我试图在一个命令中执行,从docker容器执行bash,打开mongo并使用类似

的命令发出请求
  

' db.test.find({});'

我正在读别人类似的帖子而没有成功。

这是我正在执行的命令。

  

docker exec -it mongoDB bash -c' mongo;使用测试; db.test.find({})'

那个命令给了我那个

  

bash:-c:第0行:意外令牌附近的语法错误{}'

     

bash:-c:第0行:mongo;使用测试; db.test.find({})'

有可能吗?

我希望你能帮助我。

此致

罗斯。

2 个答案:

答案 0 :(得分:1)

这实际上是使用文件执行多个命令的可能性。将您的mongo脚本放入文件中。

示例:

myFile.js

文件内容:

use myDB
show collections

然后你可以用

执行这个文件
mongo < myFile.js

在你的情况下:

docker exec -it mongoDB bash -c 'mongo < myFile.js'

不要忘记将此文件复制到docker容器中。

你可以read more here

答案 1 :(得分:0)

您实际上不需要将脚本复制到容器中。

您只需运行:

docker exec -it mongoDB bash -c 'mongo' < myFile.js