docker 安装mongodb

docker 安装mongodb(5.0+)

拉取mongodb镜像

shell 复制代码
docker pull mongo

运行容器

shell 复制代码
docker run -d --name mongodb -v /mycontainers/mongodb/data:/data/db -p 27017:27017  mongo --auth

^: -d : 指定后台运行
^: --name mongodb :设置容器名
^: -v /mycontainers/mongodb/data:/data/db :挂载目录,前面的是宿主机的目录,后面的是容器中的目录
^: -p 27017:27017 :端口映射,前面的宿主机的端口,后面是容器开启端口
^: --auth : 指定需要用户密码验证

进入mongo容器

shell 复制代码
docker exec -it mongodb mongosh admin

^: mongosh: MongoDB 5.0 及以上版本使用mongosh进入mongo容器,之前版本使用mongo进入mongo容器
^: admin :数据库,进入时可指定也可不指定,不知道进入容器默认进入test数据库,初次进入新建的mongo容器,需要新进入admin数据库创建管理员账号并登录,之后可以进入自己创建的数据库并登录

创建管理员账号

shell 复制代码
db.createUser({user:'admin',pwd:'admin.123',roles:[{ role:'userAdminAnyDatabase', db:'admin'},'readWriteAnyDatabase']});

登录管理员账号

shell 复制代码
db.auth("admin","admin.123");
db.auth("master","master.123");
db.auth("slave","slave.123");

创建并进入新数据库

shell 复制代码
use station;
use new_master;
use new_slave;
use new_slave_wind;
use new_slave_pv;

创建普通账号

shell 复制代码
db.createUser({ user:'admin',pwd:'admin.123',roles:[ { role:'readWrite', db: 'station'}]});

db.createUser({user:'master',pwd:'master.123',roles:[ { role:'readWrite', db: 'new_master'}]});

db.createUser({ user:'slave',pwd:'slave.123',roles:[ { role:'readWrite', db: 'new_slave'}]});

db.createUser({ user:'slave',pwd:'slave.123',roles:[ { role:'readWrite', db: 'new_slave_wind'}]});

db.createUser({ user:'slave',pwd:'slave.123',roles:[ { role:'readWrite', db: 'new_slave_pv'}]});

登录普通账号

shell 复制代码
db.auth("admin","admin.123");
db.auth("master","master.123");
db.auth("slave","slave.123");

创建集合

shell 复制代码
db.createCollection("tt_message");

db.createCollection("tt_offline");
db.createCollection("tt_not_in_table");
db.createCollection("tt_point_indicator");

查看集合

shell 复制代码
show collections;

查询文档数量

shell 复制代码
db.collectionName.count()
db.collectionName..countDocuments()
eg:
db.tt_offline.count()
db.tt_offline.countDocuments()

docker-compose启动容器

docker-compose.yml配置

shell 复制代码
version: "3.0"
services:
  mongodb:
    image: mongo:latest
    container_name: mongodb
    restart: always
    ports:
      - 27017:27017
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /data/mycontainers/mongodb/data:/data/db
#      - /data/mycontainers/data/configdb/mongod.conf:/etc/mongod.conf
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=root123
      - MONGODB_AUTH=yes
    network_mode: host

^: - MONGO_INITDB_ROOT_USERNAME=root
^: - MONGO_INITDB_ROOT_PASSWORD=root123 直接设置管理员账号
^: - MONGODB_AUTH=yes 指定需要用户密码验证

进入mongo容器

shell 复制代码
docker exec -it mongodb mongosh admin

登录管理员账号

db.auth("admin","admin.123");

创建并进入新数据库(操作同上)

创建普通账号(同上)

登录普通账号(同上)

创建集合(同上)

相关推荐
hshpy19 分钟前
Allow two Docker containers to communicate with each other
docker·容器·eureka
Violet_Stray21 分钟前
docker里rtsp推流+同一个docker接受流进行部署
运维·docker·容器
好记忆不如烂笔头abc23 分钟前
docker:docker: Get https://registry-1.docker.io/v2/: net/http: request canceled
http·docker·容器
杨浦老苏27 分钟前
单网页图库应用Single File PHP Gallery
docker·相册·群晖·图库
来一杯龙舌兰35 分钟前
【MongoDB】MongoDB的集群,部署架构,OptLog,集群优化等详解
数据库·mongodb·集群·集群优化·optlog·部署架构
周星猩40 分钟前
linux 安装 mongodb
数据库·mongodb
StudyHappiness1 小时前
MongoDB新版本,单节点安装
linux·运维·mongodb·kylin
晴天のVlog1 小时前
Fastapi使用MongoDB作为数据库
数据库·python·mongodb·fastapi
三杯温开水1 小时前
基于 CentOS7.6 的 Docker 下载常用的容器(MySQL&Redis&MongoDB),解决拉取容器镜像失败问题
redis·mysql·docker
微服务商城技术分享1 小时前
通过Docker实现openGauss的快速容器化安装
运维·docker·容器