docker安装mongodb
2020-05-31 03:52 youxin 阅读(414) 评论(0) 编辑 收藏 举报
docker pull mongo
docker run -p 27017:27017 -v $PWD/data:/data/db -v $PWD/conf/mongodb.conf:/etc/mongodb.conf --name mymongodb -d mongo --auth
version: '3' services: mysql: hostname: mongodb container_name: mongodb # amd64 平台 #image: mysql/mysql-server:latest image: 4.0.13-xenial ports: - "27017:27017" environment: - TZ="Asia/Shanghai" - LANG=C.UTF-8 # 初始化一个 root 角色的用户 root 密码是 root - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=root # 宿主机硬盘目录映射容器内的存放数据的目录 volumes: - ./data:/data/db - ./log:/var/log/mongodb - ./config:/etc/mongo # 增加启动参数,--auth,表示连接 mongodb 需要用户名和密码 command: - "--auth"
-p
指定容器的端口映射,mongodb 默认端口为 27017-v
为设置容器的挂载目录,这里是将<LocalDirectoryPath>即本机中的目录挂载到容器中的/data/db中,作为 mongodb 的存储目录--name
为设置该容器的名称-d
设置容器以守护进程方式运行进入 mongo 交互模式
1. docker exec -it <CONTAINER NAME> mongo 数据库名称
https://www.jianshu.com/p/aa7a7f4e2527
接着使用以下命令添加用户和设置密码,并且尝试连接。
$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
> db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
创建一个role为root的
db.createUser({ user:'admin', pwd:'admin', roles:[{role:'root',db:'admin'}] })
客户端连接:
创建操作用户
验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走,
> use mydb
> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})
7、使用创建的用户root登录进行数据库操作:
[root@localhost mongodb]# mongo 127.0.0.1/mydb -uroot -p
MongoDB shell version: 3.2.9
Enter password:
connecting to: 127.0.0.1/mydb
> db
mydb
> use mydb
switched to db mydb
> show collections
然后就可以进行增删改查各种数据操作...
admin这个账号只能用作客户端远程连接,操作的,如果程序里想要连接各个集合,要针对各个库在去单独设置账号密码,
程序里就设置新的账号密码
https://www.runoob.com/docker/docker-install-mongodb.html
MongoDB 的 Docker 常用命令
# 查看正在运行的容器
docker container ls
# 查看所有容器
docker container ls -a
# 指定 CONTAINER ID 停止容器
docker stop <CONTAINER ID>
# 指定容器名称停止容器
docker stop <CONTAINER NAME>
# 指定容器 CONTAINER ID 启动容器
docker start <CONTAINER ID>
# 指定容器名称启动容器
docker start <CONTAINER NAME>
# 指定容器 CONTAINER ID 重启容器
docker restart <CONTAINER ID>
# 指定容器名称重启容器
docker restart <CONTAINER NAME>
进入 mongo 交互模式
docker exec -it <CONTAINER NAME> mongo 数据库名称
https://zhuanlan.zhihu.com/p/81496897?from_voters_page=true
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data. systemLog: destination: file logAppend: true # 更改日志目录 path: /tmp/mongod.log # Where and how to store data. storage: # 更改数据目录 dbPath: /data/db/ journal: enabled: true # engine: # wiredTiger: # how the process runs processManagement: fork: true # fork and run in background # pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfo # network interfaces # 修改端口 net: port: 27017 # 因为127.0.0.1只能在本机访问,改后通过本机的IP就能访问服务 bindIpAll=true #kbindIp: 0.0.0.0 # Enter 127.0.0.1,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. # 开启权限校验 security: authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp:Configuration File Options# mongod.conf
mongo linux安装:
进入官网 https://www.mongodb.com/download-center
https://www.mongodb.com/try/download/community
下载bin 文件夹然后解压即可。
然后启动mongod时引入配置文件:./mongod -f /path/mongod.conf
#!/bin/bash # # mongod Start up the MongoDB server daemon # # source function library . /etc/rc.d/init.d/functions #定义命令 CMD=/opt/mongodb/bin/mongod #定义配置文件路径 INITFILE=/opt/mongodb/mongod.conf start() { #&表示后台启动,也可以使用fork参数 $CMD -f $INITFILE & echo "MongoDB is running background..." } stop() { pkill mongod echo "MongoDB is stopped." } case "$1" in start) start ;; stop) stop ;; *) echo $"Usage: $0 {start|stop}" esac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2017-05-31 tomcat优化和JVM修改内存
2013-05-31 转: java传值or传引用