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

mongodb,测试,平台,服务器 · 浏览次数 : 153

小编点评

**步骤一:创建云服务器** 1. 登入阿里云或腾讯云控制台。 2. 选择“虚拟机会”。 3. 选择“阿里云 Docker”或“腾讯云 Docker”。 4. 在“创建虚拟机会”中,选择以下设置: * 标题:例如,“我的测试环境”。 * 运行模式:请选择“自定义”。 * 内核操作系统:选择“Ubuntu 22.04”。 * 用户名和密码:选择默认用户名和密码。 * 存储卷:选择“创建存储卷”。 * 启动时运行的命令:您可以添加一个启动脚本以运行您需要的应用程序。 5. 点击“创建”。 **步骤二:安装 Docker** 1. 在虚拟机会中登录到容器管理工具(例如 `docker-compose.sh`)。 2. 使用 `docker run` 命令安装 Docker。 3. 运行以下命令: ```bash docker run -d --name some-mongo -p 10050:27017 mongo:4 ``` **步骤三:安装 Docker Compose** 1. 下载 Docker Compose 文件: ```bash docker pull docker/compose ``` 2. 将 `docker-compose.yml` 文件复制到本地。 3. 使用 `docker-compose up -d` 命令启动 Docker Compose。 **步骤四:配置 Docker Compose** 1. 编辑 `docker-compose.yml` 文件,添加以下内容: ```yaml version: "3.8" services: mongo: image: mongo:4.4 ports: - "27017:27017" volumes: - mongo-data:/data/db ``` * `mongo`:服务名称。 * `image`: Docker 镜像名称。 * `ports`:端口映射。 * `volumes`:容器与宿主机的数据共享目录。 2. 将 `mongo-data` 变量设置到 `docker-compose.yml` 文件中。 **步骤五:启动 MongoDB** 1. 启动 `mongo` 服务: ```bash docker-compose up ``` **步骤六:登录 MongoDB** 1. 使用 `mongo` 命令行工具登录到 MongoDB。 2. 输入以下命令以设置用户名和密码: ``` mongo use testdb ``` **步骤七:测试数据库连接** 1. 在控制台中打开 `localhost:27017`。 2. 应该看到 MongoDB 的服务器地址和端口。 3. 编写一个简单的 Node.js 代码,使用 `mongoose` 库连接到 MongoDB,例如: ```javascript const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/testdb', { useNewUrlParser: true, useUnifiedTopology: true }); const cat = mongoose.model('Cat', { name: String }); const kitty = new cat({ name: 'Zildjian' }); kitty.save(console.log); ``` **步骤八:运行应用代码** 1. 创建一个 Node.js 应用文件,例如 `index.js`。 2. 在 `index.js` 中编写您的应用程序代码。 3. 在 `docker-compose.yml` 文件中添加一个服务,用于运行您的应用程序: ```yaml app: build: context: ./app ports: - "3000:3000" volumes: - ./app:/app ``` 4. 运行应用程序: ```bash docker-compose run -d app ```

正文

准备一个云服务器

购买一个云服务器,在阿里云,腾讯云上购买即可。
然后创建一个实例,安装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) <docker@docker.com>"
 指纹       : 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下载。
mongodb数据库是一个NOSQL数据库,相对于SQL关系型数据库而言,它是一个松散型的数据库。对应数据结构不确定的应用比较适合,并且不会出现数据冗余。像爬虫应用。
命令如下:
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项目中链接使用
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:123456@1.15.55.28: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部分

 

与利用Docker、云服务器、mongodb搭建自己的测试平台相似的内容:

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

准备一个云服务器 购买一个云服务器,在阿里云,腾讯云上购买即可。 然后创建一个实例,安装Linux操作系统,我安装的是CentOS。 记住账号和密码,可以使用ssh远程登录即可。 搭建测试环境 Docker是一个轻量级的虚拟机,可以使用Docker下载一个Docker里面包含你想要的环境的镜像 比如

从零开始写 Docker(十八)---容器网络实现(下):为容器插上”网线“

本文为从零开始写 Docker 系列第十八篇,利用 linux 下的 Veth、Bridge、iptables 等等相关技术,构建容器网络模型,为容器插上”网线“。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实

从零开始写 Docker(十七)---容器网络实现(中):为容器插上”网线“

本文为从零开始写 Docker 系列第十七篇,利用 linux 下的 Veth、Bridge、iptables 等等相关技术,构建容器网络模型,为容器插上”网线“。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实

从零开始写 Docker(十六)---容器网络实现(上):为容器插上”网线”

本文为从零开始写 Docker 系列第十六篇,利用 linux 下的 Veth、Bridge、iptables 等等相关技术,构建容器网络模型,为容器插上”网线“。

金仓数据库全攻略:简化部署,优化管理的全流程指南

通过本篇文章的学习和实践,我们深入了解了如何利用Docker技术快速部署KingbaseES数据库。从下载镜像到编写Docker Compose模板,再到容器的启动和管理,每一步都体现了现代化部署方式的便捷和高效。此外,我们还掌握了KSQL命令行工具的使用,这将极大地提升开发人员与数据库交互的效率。

[转帖]Docker相关的概念和原理

https://www.jianshu.com/p/9737cbe33304 chroot chroot就是可以改变某进程的根目录,使这个程序不能访问目录之外的其他目录。Docker是利用Linux的Namespace、Cgroups和联合文件系统三大机制来保证实现的,它的原理是使用Namespac

docker 部署环境基本流程

博客地址:https://www.cnblogs.com/zylyehuo/ 环境部署的问题,非常棘手,因此引入了容器技术 解决环境迁移的难题 1.利用虚拟机的模板克隆功能,将整个机器的环境复制一份,再丢给第二个机器去使用 2.最好是使用docker去部署环境 docker的生命周期概念 镜像,是一

Portainer安装

Portainer安装 Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。 而且完全免费,基于容器化的安装方式,方便高效部署。 官网地址:https://www.portainer.io/ Docker安装Portainer #拉

查看docker容器使用的cpu和内存

转载请注明出处: 使用docker ps命令列出正在运行的Docker容器,并获取目标容器的ID或名称。 使用docker stats <容器ID或名称>命令来实时监测指定容器的资源使用情况。该命令将显示容器的CPU利用率、内存使用量、网络流量等信息。 例如,要查看名为my_container的容器

利用Wireshark抓包分析DNS域名解析过程

一、DNS协议概述 DNS协议也可以称为DNS服务,全称是Domain Name System,即域名系统,和HTTP协议一样,也是一个位于应用层的协议(服务),它是基于运输层的UDP协议的。从DNS的名字我们就可以知道,它提供域名映射到IP地址的服务。 二、实验目的 掌握DNS域名解析过程 熟悉D