Docker下安装Mongo4.2(挂载配置文件和数据)
1、docker pull mongo:version:拉取对应版本的镜像
$docker pull mongo:4.2
2、查看是否有Mongo镜像
$docker images
3、创建目录和配置文件
创建目录:
mkdir -p /root/mongo/data
mkdir -p /root/mongo/conf
mkdir -p /root/mongo/log
创建文件:
cd /root/mongo/conf
vim 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:4.2
参数说明
-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:4.2 #镜像版本
5、安装成功
最后我们可以通过 docker ps 命令查看容器的运行信息:
接着使用以下命令添加用户和设置密码,并且尝试连接。
mongodb是容器名称
$docker exec -it mongodb mongo admin
# 尝试使用上面创建的用户信息进行连接。 > db.auth('admin', '123456')
6、客户端工具连接,连接成功。
10.1.1.196 admin admin/123456
7、创建新数据库aoe_mongo,创建用户hmf并授权
use aoe_mongo
db.createUser({user:'hmf',pwd:'lianshi',roles:['readWrite']})
8、使用新的用户访问-->正常连接
9、创建集合,插入和查询数据
db.autotest.insert(
{
"aoeId": "1", "aoeAes": "吴秀梅", "aoeSm4": "Beijing Refining Network Technology Co.Ltd.", "aoeSm4_a": "海淀区", "aoeEmail": "qianxiulan@yahoo.com", "aoePhone": "15652996964", "aoeIdCard": "210302199608124861", "aoeOfficerCard": "武水电字第3632734号", "aoePassport": "BWP018930705", "aoeGeneralIdCard": "0299233902", "aoeCreditCard": "6212262502009182455", "aoePosition": "测试数据"}
)
之后可以将连接信息中Auth DB更改为aoe_mongo、User Name更改为hmf、Password更改为lianshi连接数据库。
10、其他docker命令
$docker logs mongodb
#进入docker命令
$docker exec -it a3c948d560a9 bash
参考: