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

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

创建普通账号(同上)

登录普通账号(同上)

创建集合(同上)

相关推荐
❀͜͡傀儡师1 小时前
管理k8s的资源类型(PV/PVC)的脚本
云原生·容器·kubernetes
采坑先锋1 小时前
Docker环境离线安装-linux服务器
linux·服务器·docker
白小云<1 小时前
docker容器
运维·docker·容器
java_logo2 小时前
Docker 部署银河麒麟(Kylin Linux)全流程教程
linux·运维·阿里云·docker·容器·kylin
莫陌尛.3 小时前
Docker安装MongoDO
运维·docker·容器
chinesegf3 小时前
Docker篇2-用python运行项目和docker运行冲突问题
python·docker·容器
人间打气筒(Ada)3 小时前
yum安装k8s集群----基于centos7.9
java·容器·kubernetes
心灵宝贝3 小时前
申威ky10架构安装MongoDB 4.0.1(rpm包:mongodb-4.0.1-8.ky10.sw_64.rpm)详细步骤
数据库·mongodb·架构
云动雨颤3 小时前
Docker容器使用指南:从概念到命令实操
运维·docker·容器
凯子坚持 c4 小时前
Docker镜像仓库的深度解析与实战指南
运维·docker·容器