sudo docker run -d --name mongodb -p 27017:27017 -v 你的配置目录:/data/configdb -v 你的数据目录:/data/db mongo
这段命令相信会docker的同学来说应该不陌生,如果有不懂的同学,可以先学习相关知识。
记住上面是没有加 --auth
的,因为如果上面加了 --auth , 你后面进入容器内部,进行添加用户等操作 的时候,就需要认证,但是你是第一次启动,肯定是没有用户的,所以认证不了,你就操作不了,创建不了用户。
正确的做法:
就是执行上面的 docker run 命令后 , 这个时候记住,你是不需要权限认证的,直接进入容器内部,进入mongodb 里,创建用户。
这个时候,你虽然创建了用户,但是你仍然没有开启认证,因为你docker run 的时候没有指定 --auth
,所以这也是 docker 在执行力方面的一个缺点吧,有很多功能需要自己摸索。
重点来了
记住,先提醒一句,可以去dockerhub上面看看每个docker的作者,都会在DockerFile结尾指定 entrypoint.sh脚本的位置,这个entrypoint.sh脚本的作用其实就是配置相应镜像的脚本
,mongodb当然也不例外:
如上图,就是mongodb DockerFile的一部分,可以看到DockerFile配置了我上面第一段命令的 mongodb的配置文件目录,数据目录。而这里最重要的就是