centos中docker mongodb 配置
Posted Ryan chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos中docker mongodb 配置相关的知识,希望对你有一定的参考价值。
安装docker,对于Centos7,如下:
$ sudo yum update
$ sudo yum -y install docker
$ sudo systemctl start docker
首先下载mongodb的镜像,直接通过dockerhub下载较慢,可首先设置加速,通过阿里云,如下:
# 系统要求 CentOS 7 以上,Docker 1.9 以上。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=https://asclxy8u.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart
下载地址:docker pull mongo
下载后启动,先说比较坑的,看到官方的介绍,
docker run --name some-mongo -d mongo
命令是可以启动容器的,不过仅仅是一个内部的端口,本机倒是可以访问,外部就不行了。
可以看出是没有27017端口的。这就需要建立端口映射,把容器删除后,重新启动一个。
docker run --name daisy -d -p 27017:27017 mongo
如图中所示,已经可以看到27017端口了。binggo,如此就可以访问了。
如果想配置权限,那么:
docker run --name daisy -d -p 27017:27017 mongo --auth
然后打开交互界面,
docker exec -it daisy mongo admin
配置一个用户
db.createUser({ user: \'message\', pwd: \'hubhub\', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
这样创建一个用户后,只能首先登录admin,然后转换到其他db,才有权限操作,如果想赋予新建db一个用户,那么use db 后
db.createUser({user:"hub",pwd:"hubhub",roles: [{role: "root",db: "admin"}]})
在当前db上创建这个用户才有权限,这样在程序中就可以连接了。
以上是关于centos中docker mongodb 配置的主要内容,如果未能解决你的问题,请参考以下文章