docker部署mongodb
拉取镜像
docker pull mongo
启动mongo(docker run和docker compose)
- docker run
--auth:需要密码才能访问容器服务。
-e MONGO_INITDB_ROOT_USERNAME:设置用户名
-e MONGO_INITDB_ROOT_PASSWORD:设置密码
docker run --restart=always --name mongodb -v ~/docker/mongo:/data/db -d -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=Mongo,123456. mongo --auth
- docker compose
version: '3.9'
services:
mongo:
command: '--auth'
image: mongo
environment:
- 'MONGO_INITDB_ROOT_PASSWORD=Mongo,123456.'
- MONGO_INITDB_ROOT_USERNAME=admin
ports:
- '27017:27017'
volumes:
- './data:/data/db'
container_name: mongodb
restart: always
进入容器,创建用户
-
进入容器
docker exec -it mongodb mongosh admin
-
使用启动时设置的账号密码认证db.auth("用户名","密码")
db.auth("admin","Mongo,123456.")
-
创建一个名为 admin2,密码为 123456 的用户
db.createUser({ user:'admin02',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
开启远程连接
- 推出容器
exit
- 进入容器bash
docker exec -it mongodb bash
- 更新源
apt-get update
- 安装vim
apt-get install vim -y
- 修改mongo配置文件
vim /etc/mongod.conf.orig
将其中的 bindIp: 127.0.0.1 注释掉# bindIp: 127.0.0.1
或者改成bindIp: 0.0.0.0
即可开启远程连接