如何修改官方的mongo docker进行authentication和数据分离?

我想对官方的MongoDB --auth进行两点小小的改进,以便启动--auth并使用separate数据容器来存储数据。 什么是最好的方法来做到这一点?

如果全部设置,我应该如何启动shell? 没有用户名和密码的人可以访问任何可用的数据库吗? 我应该备份哪个目录?

编辑

显然,这是不够的:

 docker run --name mymongoname1 -v /my/local/dir:/data/db -d -P mongo:latest 

好的,所以部分答案,因为我没有搞错dockerauthentication。

Containerising存储是用一个存储容器完成的。 这基本上是一个从令牌实例创build的容器,分配了一些卷。

所以对于elasticsearch(我知道不是mongo,但它至less是一个NoSQL db)我一直在使用:

  docker create -v /es_data:/es_data --name elasticsearch_data es-base /bin/true 

然后:

 docker run -d -p 9200:9200 --vols-from elasticsearch_data elasticsearch-2.1.0 

这将容器卷连接到我的容器 – 在本例中,它通过主机卷,但实际上您不需要,因为容器可以将数据保存在docker文件系统中。 (然后我认为你也可以推动数据容器,但是我还没有那么多!)

如果运行ps -a ,则会看到处于“ Created状态的数据容器。 只要看看,如果你正在做一个清理脚本,你不删除它,因为不像运行容器,你可以自由删除它…