首页 > 数据库 >利用Docker、云服务器、mongodb搭建自己的测试平台

利用Docker、云服务器、mongodb搭建自己的测试平台

时间:2022-11-22 23:02:01浏览次数:68  
标签:compose mongo mongodb 端口 服务器 镜像 Docker docker

准备一个云服务器

购买一个云服务器,在阿里云,腾讯云上购买即可。 然后创建一个实例,安装Linux操作系统,我安装的是CentOS。 记住账号和密码,可以使用ssh远程登录即可。  

 

搭建测试环境 Docker是一个轻量级的虚拟机,可以使用Docker下载一个Docker里面包含你想要的环境的镜像 比如你想运行一个数据库的Docker镜像,那么就可以下载一个Mysql镜像,然后使用Docker运行起来,然后把你的项目链接到这个Docker里面的数据库就可以了。非常方便。   在云服务器上安装Docker工具 1.首先从github上找到安装docker的sh脚本
https://github.com/docker/docker-install

 2.然后ssh链接远程云服务,执行命令安装docker

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

信息记录

+ sh -c 'yum install -y -q docker-ce docker-ce-cli containerd.io docker-scan-plugin docker-compose-plugin docker-ce-rootless-extras'
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-20.10.21-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
docker-ce-20.10.21-3.el7.x86_64.rpm 的公钥尚未安装

导入 GPG key 0x621E9F35:
 用户ID     : "Docker Release (CE rpm) <[email protected]>"
 指纹       : 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 来自       : https://download.docker.com/linux/centos/gpg
setsebool:  SELinux is disabled.

 3.安装docker compose

docker compose容器管家,在只要Docker容器的时候,每次镜像启动都要收到执行命令,有了这个大管家,可以通过配置文件的方式让它帮忙其他配置的镜像。  docker compose官方介绍:https://docs.docker.com/compose/install/other/
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

修改执行权限

sudo chmod +x /usr/local/bin/docker-compose

 4.下载版本4的mongo镜像

这里使用的数据库是mongodb数据库,所以对应下载的镜像是mongo,选择版本4下载。 命令如下:
docker pull mongo:4

  首先在下面目录下修改docker的镜像源,加速下载

/etc/docker/daemon.json

{
    "registry-mirrors":["https://registry.docker-cn.com"]
}
//重启docker使生效
service docker restart

 注意,直接vi /etc/docker/daemon.json 添加下面的镜像会报错

"/etc/docker/daemon.json" E212: Can't open file for writing 原因是/etc/目录下没有docker目录,需要收到创建后再建文件 步骤如下:
cd /etc
mkdir docker
cd docker
vi daemon.json

 

//下载docker 镜像
docker pull mongo:4

//查看本地安装的docker镜像
docker images

//运行docker镜像 -d:后台运行, -p:指定宿主端口:docker内进程端口的关系 
// mongo:4运行mongo4版本 --name:运行的docker在进程中的名字
//注意:对宿主机设置放行10050端口,简单的方式是关闭防火墙
docker run -d --name some-mongo -p 10050:27017 mongo:4

 5.让镜像开机自动运行

一般情况下,会做一些系统的配置和宿主端口与docker端口的映射关系,这样Docker就会默认启动这个镜像了 创建docker-compose.yml配置文件
version: '3.1'

services:

  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: root123456
    ports:
    #端口映射 宿主端口:容器端口
      - 27017:27017
    volumes:
    #数据备份,在宿主机保存数据文件 宿主保存目录:容器中的数据目录
      - /home/mongotest:/data/db  

 然后ssh登录云主机,将配置文件设置到主机上的docker-compose.yml文件上

[root@VM-0-11-centos ~]# cd /home/
[root@VM-0-11-centos home]# ls
[root@VM-0-11-centos home]# mkdir mongotest
[root@VM-0-11-centos home]# cd mongotest/
[root@VM-0-11-centos mongotest]# vi docker-compose.yml

 执行更新,注意此时docker-compose会检测配置文件,如果docker-compose.yml里面的imags不存在会自动下载,并运行。

docker-compose up -d

 6.修改防火墙

在对云服务器的防火墙放行对应的端口,如下面放行端口10050
//查看docker运行进程
docker ps

//简单的方式是关闭防火墙
Centos: service firewalld stop

//对防火墙设置放行这个端口
firewall-cmd --zone=public --add-port=10050/tcp --permanent
//重启
firewall-cmd --reload
//查看防火墙状态
firewall-cmd --state

 

 使用图形化界面操作数据库 对于mongodb这种NOSQL数据库,可以使用GUI工具进行管理,更加方便。 使用Robo 3T需要注册账号,然后在第一次启动时,输入网页登录后产生的hash值才能正常启动   1.下载Robo 3T mongo的图形化管理工具
https://robomongo.org


//将网页登录成功后产生的md5复制,然后粘贴到app启动的code中,才能正常打开
3045a653-0bf5-4ac7-99e2-9c315fdf462d

 登录成功后,建立本地与远程docker的链接

 

 

 在Node项目中链接使用 官方文档:https://mongoosejs.com/ mongoose是mongodb的node工具,可以方便的在node服务端使用  安装:
//初始化工程
npm init -y
//安装第三方模块mongoose
npm install --save mongoose

 然后链接云服务器中运行的docker镜像,mongodb数据库

const mongoose = require('mongoose');

//test:123456@ @前面表示:数据库的用户名:密码
//27017/testdb 27017端口后面表示:链接的数据库

mongoose.connect("mongodb://test:[email protected]:27017/testdb", {useNewUrlParser: true, useUnifiedTopology: true});

const Cat = mongoose.model('Cat', { name: String });

const kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
    if (err) {
        console.log('err',err)
    } else  {
        console.log('miao!!')
    }
})

代码例子:gitHub库:https://github.com/zhfei/ReactBasicKnowledge 中的mongoose_demo部分

 

标签:compose,mongo,mongodb,端口,服务器,镜像,Docker,docker
From: https://www.cnblogs.com/zhou--fei/p/16916804.html

相关文章

  • docker下安装redis
    1.拉取redis镜像:dockerpullredis2.查看本地镜像:dockerimages  3.从redis官网下载redis.conf配置文件:打开链接 http://download.redis.io/redis-stable,找到......
  • Serverless云服务的出现以及docker容器带来的变化
    Serverless云服务的出现以及docker容器带来的变化坚持原创,写好每一篇文章随着云服务的不断发展,很多公司都把自己的服务放在云上,通过云来管理各种服务。云服务的演进一......
  • [工具问题] docker.mysql8 Public Key Retrieval is not allowed
    TochangethesettingsonDbeaver:Rightclickyourconnection,choose"EditConnection"Onthe"Connectionsettings"screen(mainscreen)clickon"EditD......
  • Docker 命令查看容器的IP地址
    查看Docker的底层信息​​docker​​ inspect会返回一个JSON文件记录着Docker容器的配置和状态信息#查看容器所有状态信息;dockerinspectNAMES #查看容器ip地......
  • Docker常用命令
    Docker常用命令1、帮助启动类命令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestartdocker查看docker状态:systemctlsta......
  • 恒创科技:高速云服务器怎么选?需要注意这几点
    ​云服务器是我们使用较多的一款网站服务器,不仅拥有许多优点,而且对于用户来说也是性价比较高的选择。但是很多人对于云服务器的选择还存在一些问题,那么下面我们就来讲讲......
  • Jenkins服务器的部署与简单使用(第三周)
    Jenkins安装安装依赖:https://www.jenkins.io/zh/doc/book/installing/    #CPU、内存、磁盘安装Java8、在2.361.1及以上版本开始要求Java11:aptinstallopenj......
  • Linux 安装Docker 一键脚本执行
    sudoyumremovedocker*sudoyuminstall-yyum-utils#配置docker的yum地址sudoyum-config-manager\--add-repo\http://mirrors.aliyun.com/docker-ce/linux/c......
  • 134-腾讯云服务器装Tengine
    第1步:yuminstallgccgcc-c++autoconfautomake出现类似如下错误:Couldnotresolvehost:mirrors.tencentyun.com;Unknownerror百度结果说:我们需要把DNS恢复为......
  • Docker Compose详解
    使用 DockerComposeDockerCompose是一种用于帮助定义和共享多容器应用程序的工具。使用Compose,我们可以创建一个YAML文件来定义服务,并且使用一个命令,可以启动所有内容......