1、docker pull mongo:version:拉取对应版本的镜像
$docker pull mongo:6.0.4
2、查看是否有Mongo镜像
$docker images
3、创建目录和配置文件
创建目录:
mkdir -p /root/mongo/data
mkdir -p /root/mongo/conf
mkdir -p /root/mongo/log
创建文件:
cd /root/mongo/conf
以上操作在window下也是可以实现的
保存 mongodb.conf
#端口
port=27017
#数据库文件存放目录
dbpath=/root/mongo/data
#日志文件存放路径
logpath=/root/mongo/log
#使用追加方式写日志
logappend=true
#以守护线程的方式运行,创建服务器进程
fork=true
#最大同时连接数
maxConns=100
#不启用验证
#noauth=true
#每次写入会记录一条操作日志
journal=true
#存储引擎有mmapv1、wiredTiger、mongorocks
storageEngine=wiredTiger
#访问IP
bind_ip=0.0.0.0
#用户验证
#auth=true
4、运行mongo容器(外挂载配置文件和数据)
docker run -d \
--name mongodb \
-p 27017:27017 \
-v /root/mongo/data:/data/db \
-v /root/mongo/conf:/data/conf \
-v /root/mongo/log:/data/log \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--privileged=true \
--restart always \
mongo:6.0.4
参数说明
-d #后台运行容器
–name mongodb #运行容器名
-p 27017:27017 #将容器的27017端口映射到主机的27017端口,外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
(将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口)
-v /root/mongo/data:/data/db #文件挂载目录
-v /root/mongo/conf:/data/conf #配置文件路径
-v /root/mongo/log:/data/log #日志路径
-e MONGO_INITDB_ROOT_USERNAME=admin #指定用户名
-e MONGO_INITDB_ROOT_PASSWORD=123456 #指定密码
–privileged=true #使得容器内的root拥有真正的root权限
–restart always #跟随docker一起启动,即docker启动时会自动运行容器
mongo:6.0.4 #镜像版本
5、安装成功
最后我们可以通过 docker ps 命令查看容器的运行信息:
这里也可以使用docker-compose.yml实现Mongo的安装
version: '3.3'
services:
mongodb:
image: mongo:6.0.4
container_name: mongodb
restart: always
privileged: true
ports:
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=123456
volumes:
- /root/mongo/data:/data/db
- /root/mongo/logs:/var/log/mongodb
- /etc/localtime:/etc/localtime:ro
- /root/mongo/conf:/data/conf
和原始的fastgpt的配置的docker-compose文件最大的区别是本处配置了加载配置文件,可以开放远程访问,方便学习,当然实际生产环境还是建议关闭。
接着使用以下命令添加用户和设置密码,并且尝试连接。
mongodb是容器名称
$docker exec -it mongodb mongo admin
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')
此处可能报错,百度查资料解决
6、客户端工具连接,连接成功。
localhost admin admin/123456
可以使用nosqlbooster,当然也可以使用新版的navicate。
7、创建新数据库aoe_mongo,创建用户hmf并授权
use aoe_mongo
db.createUser({user:'hmf',pwd:'lianshi',roles:['readWrite']})
8、使用新的用户访问-->正常连接
9、创建集合,插入和查询数据
db.autotest.insert(
{
"aoeId": "1", "aoeAes": "test", "aoeSm4": "Beijing Network Technology Co.Ltd.", "aoeSm4_a": "海淀区", "aoeEmail": "111@yahoo.com", "aoePhone": "11111", "aoeIdCard": "111", "aoeOfficerCard": "test", "aoePassport": "111", "aoeGeneralIdCard": "111", "aoeCreditCard": "111", "aoePosition": "测试数据"}
)
之后可以将连接信息中Auth DB更改为aoe_mongo、User Name更改为hmf、Password更改为lianshi连接数据库。
10、其他docker命令
$docker logs mongodb
#进入docker命令
$docker exec -it a3c948d560a9 bash
参考:
https://blog.csdn.net/fen_fen/article/details/126359997