docker映射mysql配置文件_docker 创建mongodb 容器 映射本地数据目录和配置文件

本文介绍了如何使用Docker创建MongoDB容器,并详细阐述了如何映射本地数据目录和配置文件,包括设置数据库路径、端口映射以及配置文件的创建和挂载。通过这些步骤,确保了数据持久化和容器外部的可访问性。

2a7dc98d51e935877ac98448f3cc2d78.png

文章目录

docker 创建mongodb 容器

安装 mongodb 镜像

拉取官方镜像

docker pull mongo

本地创建数据库目录 #zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:03:15]

$sudo mkdir mongodb

不要忘记给目录 777 权限

sudo chmod 777 mongodb

本地配置文件目录 #zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:27:24] C:130

$sudo mkdir docker/mongodb

不要忘记给目录 777 权限

sudo chmod 777 -R docker

docker下面所有子目录给予777权限

创建 mongodb配置文件

sudo nano mongo.conf

systemLog:

destination: file

path: /var/log/mongodb/mongod.log

logAppend: true

storage:

dbPath: /data/db

net:

port: 27037

bindIp: 0.0.0.0

#security:

#authorization: enabled

注意

systemLog:

destination: file

path: /var/log/mongodb/mongod.log

logAppend: true

写入日志文件的地址是容器中的路径(不是宿主机里的地址)

storage:

dbPath: /data/db

数据库目录是容器中的路径 (不是宿主机里的地址路径)

net:

port: 27037

bindIp: 0.0.0.0

指定容器mongodb启动监听 27037 端口

0.0.0.0 是为了让宿主机可以访问容器的mongodb服务.

security:

是开启账号密码登录验证方式,用井号做了注释,暂时不需要账号密码验证方式登录.

docker 启动容器 docker run --name mongodb -v /Users/zhangzhi/mongodb:/data/db -v /Users/zhangzhi/docker/mongodb/mongo.conf:/data/configdb/mongo.conf -p 27037:27037 -d mongo -f /data/configdb/mongo.conf

--name 指定docker实例别名 mongodb

-v 指定本机文件映射容器文件

-v /Users/zhangzhi/mongodb:/data/db

宿主机 /Users/zhangzhi/mongodb 数据库目录

映射到容器 /data/db 目录

-v /Users/zhangzhi/docker/mongodb/mongo.conf:/data/configdb/mongo.conf

宿主机mongodb配置文件 /Users/zhangzhi/docker/mongodb/mongo.conf

映射到容器 /data/configdb/mongo.conf

-p 27037:27037

指定容器端口 27037 映射到 本机端口 27037

-d

设置容器以守护进程方式运行,返回容器id

mongo

启动容器mongo服务

-f

指定配置文件

-f /data/configdb/mongo.conf

容器目录下配置文件路径

--auth

使用账号密码登录

启动 #zhangzhi @ ZhangZhi-MacBook-Pro in ~ [15:27:17]

$docker run --name mongodb -v /Users/zhangzhi/mongodb:/data/db -v /Users/zhangzhi/docker/mongodb/mongo.conf:/data/configdb/mongo.conf -p 27037:27037 -d mongo -f /data/configdb/mongo.conf

8ee10d21c7b996a71a9642a7c806061536c8b19173c86790c790a07c9c3c9e5d

容器启动成功,返回了容器ID

8ee10d21c7b996a71a9642a7c806061536c8b19173c86790c790a07c9c3c9e5d

检查mongo服务是否启动成功

使用宿主机中的 Robo 3T 链接容器mongodb服务

fecf27bdcbd880ce0397b94e5771c60a.png

说明服务启动成功,对外暴露的 27037 端口可以被宿主机访问到.

设置数据库管理员

以admin 身份进入mongodb数据库客户端:

docker exec -it mongodb mongo --host 127.0.0.1 --port 27037 admin

mongodb 是镜像实例名称 (容器别名)

mongo 是启动mongodb客户端指令

-- host 指定主机

--port 指定27037

admin 以admin身份进入数据库客户端

如果你不改变默认 27017端口的话,上面指令可以不使用 --host 和 --port 参数

>use admin

switched to db admin

>db.createUser({ user: 'admin', pwd: 'admin', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });

Successfully added user: {

"user" : "admin",

"roles" : [

{

"role" : "userAdminAnyDatabase",

"db" : "admin"

}

]

}

插入成功后授权 admin

>db.auth("admin","admin");

1

创建数据库操作账号

>use admin

switched to db admin

>db.createUser({ user: "操作账号", pwd: "操作账号密码", roles: [ { role: "readWrite", db: "授权的数据库名" } ] });

Successfully added user: {

"user" : "lingpao",

"roles" : [

{

"role" : "readWrite",

"db" : "lingpao"

}

]

}

进入刚才授权的数据库,给刚才新增的账号授权

>use 授权的数据库名

进入当前数据库后

>db.auth("操作账号","账号密码");

授权成功

验证新增账号是否有权访问指定数据库

5898896f5b0a3b655bbbeb34a35ed463.png

使用新增账号连接对应的数据库没有问题.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值