Docker 安装MongoDB

MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序。

1、查看可用的 MongoDB 版本

访问 MongoDB 镜像库地址: Docker Hub

可以通过 Sort by 查看其他版本的 MongoDB,默认是最新版本 mongo:latest

你也可以在下拉列表中找到其他你想要的版本:

 

 

此外,我们还可以用 docker search mongo 命令来查看可用版本:

2、取最新版的 MongoDB 镜像

这里我们拉取官方的最新版本的镜像: 

 

docker pull mongo:latest

3、查看本地镜像

使用以下命令来查看是否已安装了 mongo:

docker images

在上图中可以看到我们已经安装了最新版本(latest)的 mongo 镜像。

4. 创建映射文件的目录,并且赋予权限

sudo mkdir -p /usr/local/mongodb/datadb
sudo mkdir -p /usr/local/mongodb/conf
sudo mkdir -p /usr/local/mongodb/logs
sudo mkdir -p /usr/local/mongodb/databackup
#mongodb下面所有子目录给予777权限
sudo chmod 777 -R /usr/local/mongodb/

(重要)这里把MongoDB的数据映射到磁盘,避免容器删除或者异常数据丢失。

 5. 运行容器

安装完成后,我们可以使用以下命令来运行 mongo 容器:

docker run -d --name mongodb -p 27018:27017 -v /usr/local/mongodb/datadb:/data/db -v /usr/local/mongodb/conf:/data/configdb -v /usr/local/mongodb/backup:/data/backup -v /usr/local/mongodb/logs:/data/log --privileged=true --restart always mongo

参数说明:

  • -d 后台运行容器
  • –name mongodb 运行容器名
  • -p 27018:27017 将容器的27017端口映射到主机的27018端口
  • -v /usr/local/mongodb/datadb:/data/db 文件挂载: 本机:容器
  • –privileged=true 使得容器内的root拥有真正的root权限
  • –restart always 跟随docker一起启动,即docker启动时会自动运行容器
  • mongo 运行的镜像名字

5、安装成功

最后我们可以通过 docker ps 命令查看容器的运行信息:

6、访问

以 admin 用户身份进入mongo :

docker exec -it  mongodb  mongo admin

7. 如果没有创建的管理员账号的话,要创建一个管理员账号

$ docker exec -it mongo mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
>  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
> db.auth('admin', '123456')

8.数据备份

在运行一段时间以后,我们可以执行如下命令进行数据库备份:

(上面命令已做,这里不需要)首先,我们需要将本地磁盘的某个文件夹映射到容器中的备份文件夹中:

docker run --name mongo -v /mnt/mongo/backup:/data/backup -d mongo

数据库备份的方式如下:

docker exec mongo sh -c 'exec var=`date +%Y%m%d%H%M` && mongodump -h localhost --port 27017 -u test -p test1 -d dbname -o /data/backup/$var_test1.dat'

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunjavateam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值