使用Docker容器部署MongoDB并支持远程访问及遇到的坑

目录
  • 前言
  • Docker & MongoDB
    • Docker
    • MongoDB
  • 使用Docker部署MongoDB
    • 容器中换源
    • 更改配置
    • 开放端口

前言

由于使用宝塔面板来配置MongoDB的BUG太多,实在受不了,今天心血来潮想要使用Docker容器来进行部署。本来以为也就二三十分钟的事情结果踩坑踩了将近两个小时,不过万幸还是成功部署上了

Docker & MongoDB

在开始讲之前,我们需要知道DockerMongoDB是什么,虽然这两个工具已经非常流行,但可能还是有读者不知道其详细概念

Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

MongoDB

MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

使用Docker部署MongoDB

Docker的安装请参照其他文章

在进入我们服务器的终端后就可以开始操作了,首先我们要拉取最新的mongo镜像

$ docker pull mongo:latest

使用docker images来检查是否成功拉取镜像

$ docker images

接下来我们就可以让镜像跑起来并跑在27017端口

若跑在其他端口会有坑,后面讲

$ docker run -itd --name mongo -p 27017:27017 mongo

我们可以使用docker ps来验证是否已经跑起来了,下一步我们直接进入容器中

$ docker exec -it mongo /bin/bash

接下来我们不慌着直接使用mongo命令,因为直接使用的话就会踩坑。我们的目的是部署了MongoDB并能让其支持远程访问,所以我们需要先去更改它的配置文件,更改配置文件需要使用到vim,所以我们还需要下载vim,但我们知道,直接下载的话非常缓慢,所以我们还得给容器换一个源

容器中换源

正则替换成阿里的镜像可以快速update

$ sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
$ sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
$ apt clean
$ apt-get update -y

更改配置

接下来就可以下载vim并更改配置了

$ apt-get install vim
$ vim /etc/mongod.conf.orig

进入到配置我们中将其中的bindIp: 127.0.0.1注释掉# bindIp: 127.0.0.1,或改成0.0.0.0即可。除此之外,若你MongoDB部署的端口不是27017,也应该进行替换(坑点之一,对应上文)

在这之后就可以进行连接了

开放端口

我们需要开放端口并还需在服务器添加安全组策略,若两个中有一个没开都是访问不到的

到此这篇关于使用Docker容器部署MongoDB并支持远程访问及遇到的坑的文章就介绍到这了,更多相关Docker部署MongoDB内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Docker 部署 MongoDB容器的方法

    目录 Docker是什么 部署 1. 拉取镜像 2. 查看镜像 3. 运行容器 4. 创建用户 5. 连接 DB 6. UI Docker是什么 " Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口." MongoDB 是一个免费的开源跨平台面向文档的 NoSQL 数据库程序. 下面给大家介绍Docker 部署 MongoDB的详细教程

  • Docker容器化部署尝试——多容器通信(node+mongoDB+nginx)

    原因是这样的 想要部署一个mocker平台,就在朋友的推荐下选择了 api-mocker 这个现成的项目 该项目分为服务端node.客户端vue.以及数据库mongoDB 在尝试直接部署的时候发现需要装一大堆的环境,node.mongo.nginx啊,特别的麻烦,之前简单的使用过docker,就在想能不能用docker免环境直接部署呢?于是就有了这次的尝试 多容器通信 该项目分为3个部分,于是就要建立3个容器(node.mongo.nginx) 那容器之间怎么实现通信呢? # 通过link指令建

  • 使用Docker容器部署MongoDB并支持远程访问及遇到的坑

    目录 前言 Docker & MongoDB Docker MongoDB 使用Docker部署MongoDB 容器中换源 更改配置 开放端口 前言 由于使用宝塔面板来配置MongoDB的BUG太多,实在受不了,今天心血来潮想要使用Docker容器来进行部署.本来以为也就二三十分钟的事情结果踩坑踩了将近两个小时,不过万幸还是成功部署上了 Docker & MongoDB 在开始讲之前,我们需要知道Docker和MongoDB是什么,虽然这两个工具已经非常流行,但可能还是有读者不知道其详细概

  • 关于docker容器部署redis步骤介绍

    目录 1 redis配置文件 2 docker命令启动 3 docker-compose启动 1 redis配置文件 官方下载:redis.conf 路径:在容器中,一般可以保存在/etc/redis/redis.conf 路径中 配置文件详解,根据实际情况进行修改: # 这里的bind指的是只有指定的网段才可以访问redis,注释后则没有这个限制 # bind 127.0.0.1 # 默认端口为6379 port 6379 # daemonize表示是否以守护进程进行执行,容器中执行必须设置成

  • Docker容器部署consul的详细步骤

    目录 Consul简介 Consul 使用场景 -consul部署- 容器服务自动加入consul集群 安装Gliderlabs/Registrator Gliderlabs/Registrator 测试服务发现功能是否正常 安装consul-template 安装nginx 配置并启动template Consul简介 Consul 是一个支持多数据中心分布式高可用的 服务发现 和 配置共享 的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public Li

  • SpringBoot项目docker容器部署实现

    目录 一.修改docker.service,使其暴露2375端口 二.netstat -tulp查看端口情况 三.添加依赖 四.在idea中 Settings->Docker配置远程docker的地址 五.配置Dockerfile文件 六.配置docker容器以及镜像等相关信息 七.启动顺序 八.测试访问 一.修改docker.service,使其暴露2375端口 使用命令: vi /lib/systemd/system/docker.service 在ExecStart=*******后加入如

  • 使用Docker容器部署rocketmq单机的全过程

    目录 查询镜像 拉取镜像 创建namesrv数据存储路径 构建namesrv容器 创建broker数据存储路径 创建broker配置文件 broker.conf 内容如下: 构建broker容器 构建rocketmq-console-ng 查询镜像 docker search rocketmq NAME DESCRIPTION STARS OFFICIAL AUTOMATED foxiswho/rocketmq rocketmq 69 rocketmqinc/rocketmq Image rep

  • Docker容器部署前端Vue服务(小白教程)

    目录 需要工具 首先对前端项目进行打包:npm run build 在项目文件夹下编写nginx config配置文件 在项目文件夹下编写Dockerfile文件 构建docker镜像 启动docker容器 查看启动的容器 访问 需要工具 Xftp Xshell 首先对前端项目进行打包:npm run build 打包完成 在项目中生成dist文件: 通过Xshell在/home目录下创建项目文件夹 mkdir xxxx(文件名) 通过Xftp将打包的dist文件上传到服务器的项目文件夹下: 利

  • 使用Docker容器部署Vue程序

    目录 一.安装Nginx 二.创建Vue程序 1.创建项目 2.编译项目 3.添加Dockerfile文件 4.上传文件 5.构建镜像 6.运行容器 一.安装Nginx 我们部署Vue程序依赖Nginx,首先拉取Nginx的镜像,这里使用Nginx最新的镜像 docker pull nginx 如图所示 我们查看镜像 已经有了nginx镜像. 我们根据nginx镜像运行容器 docker run --name=nginx -d -p 4030:80 nginx 如图所示 然后在浏览器里面访问40

  • Docker中部署mysql服务的方法及遇到的坑

    最近一直在学习搬运工,感觉这么厉害的东西怎么以前不知道呢,把自己捣鼓的过程整理记录下来,供同学们参考 第零步:从Docker Hub拉取官方mysql镜像 docker pull mysql 然后就是进入漫长的等待,当然如果你配置了镜像加速器,速度会快那么一丢丢 第一步:使用docker images命令查看镜像 你会看到我们这里已经有了MySQL的的镜像 第二步:启动我们的mysql的镜像,创建一个MySQL的容器 使用命令:docker run -d --name mysql -p 3307

  • Docker compose部署SpringBoot项目连接MySQL及遇到的坑

    前面使用docker简单部署了下SpringBoot项目并介绍了什么是Dockerfile,如果是镜像比较多的情况下如何一键交付呢?Docker-compose!,理解了Docker-compose后面学习K8s就会好理解一些 一.安装docker-compose 环境Centos7 //下载docker-compose curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.3/docker-compose-

  • .net 4.5部署到docker容器的完整步骤

    前言 本文主要给大家介绍了关于.net 4.5部署到docker容器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 .net4.5部署到docker容器 部署到windows容器 部署到linux容器 部署到windows容器 由于.net本身就是运行在windows平台的,所以它与windows容器也是更加适合,你可以以iis镜像为基础,去编写你的Dockerfile文件,从而去构建你的.net项目镜像. 1.两个现成的例子 .net console程序 docke

随机推荐