我想在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命令来执行退出?
感谢
答案 0 :(得分:1)
通常(当然这取决于你正在使用的基本图像)你不需要调用“sh -c”。此外,-it
组合通常是使shell打开并等待输入的原因。尝试稍微改变一下你的命令,如下所示,没有-it
和sh -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