docker 中配置mongodb并对外暴露链接端口设置账户认证,防止脱裤
准备工作:首先在data/db目录下面新建一个文件,具体操作如下:openssl rand -base64 741 > mongodb-keyfilechmod 600 mongodb-keyfilesudo chown 999 mongodb-keyfile上面这个操作是为每个节点创建密钥文件,以方便数据库集群,如果你没有那就把下面的- /data/mongodb-keyfi
·
准备工作:
首先在data/db目录下面新建一个文件,具体操作如下:
openssl rand -base64 741 > mongodb-keyfile
chmod 600 mongodb-keyfile
sudo chown 999 mongodb-keyfile
上面这个操作是为每个节点创建密钥文件,以方便数据库集群,如果你没有那就把下面的
- /data/mongodb-keyfile:/opt/keyfile
去掉,以免报错
1.docker-meteorblog.yml
mongometeor:
container_name: mongometeor
hostname: mongometeor
restart: always
image: mongo
ports:
- 2777:27017
volumes:
- /data/db:/data/db
- /data/mongodb-keyfile:/opt/keyfile
command: --smallfiles --rest --auth
meteorblog:
container_name: meteorblog
restart: always
image: meteorhacks/meteord:base
environment:
- MONGO_URL=mongodb://meteorblog:secret@mongometeor:27017/mongometeorblog
- ROOT_URL=http://localhost:80
links:
- mongometeor
ports:
- 8080:80
volumes:
- /root/docker/meteorblog:/bundle
2.执行命令即可:
docker-compose -f docker-meteorblog.yml up
3.进入mongometeor容器,执行命令
docker exec -it mongometeor /bin/bash
4.设置mongometeor用户
执行命令:
mongo
use admin
#创建用户gyj
db.createUser({user: "gyj",pwd: "secret",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
#验证是否创建成功
db.auth("gyj","secret")
5.使用管理员账户登陆,就是上面你创建的gyj用户了
mongo admin -u gyj -p
secret
6.这一步是最重要的,就是给特定的数据库设定用户
db.createUser(
{
user: "meteorblog",
pwd: "secret",
roles: [
{ role: "readWrite", db: "mongometeorblog" }
]
}
)
#这里的db就是你的数据库名字
role就是你的权限,你可以随便设置
更多推荐
已为社区贡献2条内容
所有评论(0)