连接到docker中执行thru shell后,mongo断开连接

时间:2017-01-26 05:46:02

标签: mongodb shell docker

我想在docker命令中执行以下操作后关闭mongo shell:

#!/bin/bash

docker run -it --link sonams-mongo:mongo --rm mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'

if [ $? -eq 0 ]; then \
  echo "connected to mongo successful"; \
else \
  echo "mongo connection NOT successful"; \
fi; \

当它连接时,它会转到mongo中的shell提示符。有没有办法在docker命令中或之后传递shell命令来执行退出?

感谢

1 个答案:

答案 0 :(得分:1)

通常(当然这取决于你正在使用的基本图像)你不需要调用“sh -c”。此外,-it组合通常是使shell打开并等待输入的原因。尝试稍微改变一下你的命令,如下所示,没有-itsh -c

docker run --link sonams-mongo:mongo --rm mongo mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"

如果这没有用,请试试这个:

echo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test" | docker run --link sonams-mongo:mongo --rm mongo mongo