为了账号安全,请及时绑定邮箱和手机立即绑定

Docker MongoDB 部署

标签:
MySQL

MongoDB 是一款较为常用的NOSQL 数据库,结合 Docker 使用,能实现轻松配置部署、迁移,本文以下为简要介绍如何在 Docker 中部署并使用 MongoDB。下文主要分为几个部分,内容如下:

  • MongoDB 镜像安装

  • MongoDB 容器创建

  • MongoDB 容器数据目录挂载

  • MongoDB 数据迁移

  • MongoDB 常用 Docker 命令

MongoDB Docker 镜像安装

MongoDB 提供官方镜像,下载安装镜像方法如下:

docker pull mongo

以上命令为安装 MongoDB 最新版本的镜像。

MongoDB Docker 容器创建

MongoDB Docker 容器创建有以下几个问题:
1- MongoDB 容器基本创建方法和数据目录挂载
2- MongoDB 容器的数据迁移
3- MongoDB 设置登录权限问题

MongoDB 容器基本创建方法和数据目录挂载

MongoDB 容器基本创建命令如下:

docker run -p 27017:27017 -v <LocalDirectoryPath>:/data/db --name docker_mongodb -d mongo

在上面的命令中,几个命令参数的详细解释如下:
-p 指定容器的端口映射,mongodb 默认端口为 27017
-v 为设置容器的挂载目录,这里是将<LocalDirectoryPath>即本机中的目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
--name 为设置该容器的名称
-d 设置容器以守护进程方式运行

webp

mongodb container.jpeg


以上是 MongoDB 容器创建后的信息。
接下来,我们使用 Robo 3T 图形界面软件尝试打开数据库。
打开 RoBo 3T,选择新建连接,按照下图填入相关数据库信息,保存。

webp

robo3t demo.jpeg


然后点击连接,数据库连接成功,界面如下图显示

webp

robo3t connected.jpeg


这里我们可以看到,这是一个空的数据库。随后我们创建一个test_database的数据库,然后在创建一个test_collection的集合,再在这个集合中添加一个文档,文档内容为:


{'info': 'create success!'}

我们可以通过 RoBo 3T来查看目前数据库中数据的情况

webp

robo3t data demo.jpeg


容器数据迁移

接下来,我们先停止刚才创建的 docker_mongodb 容器,命令如下:

docker stop docker_mongodb

然后我们再创建一个新的 MongoDB 容器,挂载刚才刚刚的数据目录,命令如下:

docker run -p 27017:27017 -v <LocalDirectoryPath>:/data/db --name docker_mongodb_migration -d mongo

我们可以容器查询命令,查看当前 Docker 的容器状态,命令如下:

docker container ls -a

这里的 -a 参数是查看所有的容器,包括已经停止的容器。

webp

mongodb migration.jpeg


我们可以从输出结果看到,这时 docker_mongodb 的状态是 Exited,表示已经退出,而新创建的 docker_mongodb_migration 的状态显示为 Up,表明数据库正在运行。


然后我们再打开 RoBo 3T,连接数据库,可以看到我们看到我们再 docker_mongodb 中创建的数据,这里表明我们新创建的 docker_mongodb_migration 挂载的数据目录和 docker_mongodb 相同,利用这一方法,我们可以实现简单的数据迁移。

webp

robo3t mongodb imgration.jpeg


MongoDB 的 Docker 常用命令

使用 Docker MongoDB 会使用到以下几个常用的命令。

查看当前运行的容器

# 查看正在运行的容器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 admin



作者:speculatecat
链接:https://www.jianshu.com/p/6fdb2bcb4b43


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消