如何在容器重启之间持久化MongoDB数据?

使用docker运行MongoDB容器非常容易。 虽然每次启动一个新的MongoDB容器时,都会得到新的空数据库。

我应该怎么做才能保持容器重启之间的数据库内容? 我试图使用-v选项绑定外部目录到容器,但没有任何成功。

我尝试使用ehazlett/mongodb图像,它工作正常。

通过这个图像,你可以很容易地指定mongo用DATA_DIR envvariables存储数据的地方。 我相信,改变你的形象也不是很难。

这是我做的:

mkdir test; docker run -v `pwd`/test:/tmp/mongo -e DATA_DIR=/tmp/mongo ehazlett/mongodb

请注意-v`pwd` ,因为服务器和客户端可能有不同的path,所以指定绝对path很重要。

使用这个命令,我可以在任意时间运行mongo,并且数据库将始终存储在我刚刚创build的./test目录中。