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");

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

创建普通账号(同上)

登录普通账号(同上)

创建集合(同上)

相关推荐
小柒xq6 小时前
使用docker compose安装部署gitlab
docker·容器·gitlab
努力的小陈^O^6 小时前
docker学习笔记跟常用命令总结
java·笔记·docker·云原生
童先生6 小时前
如何将java项目打包成docker 镜像并且可运行
java·开发语言·docker
史努比.7 小时前
k8s 对外服务之 Ingress
容器
长囧鹿7 小时前
k8s资源对象管理
云原生·容器·kubernetes
Zoran_卓8 小时前
在k8s上部署minio
云原生·容器·kubernetes
追梦不止~8 小时前
K8S基础概念和环境搭建
云原生·容器·kubernetes
猿java9 小时前
Docker是什么?Kubernetes又是什么?如何通过代码实战理解它们?
java·docker·kubernetes
吃苹果的牛顿顿9 小时前
Docker本地搭建WordPress
运维·docker·容器
daizikui13 小时前
docker使用阿里云容器镜像服务下载公共镜像
阿里云·docker·容器