前置知识链接

预览:http://8.142.6.23/#/screen

项目开源地址:
前端vue:https://gitee.com/gaohan888/echarts-learning/tree/master/vision
后端node.js: https://gitee.com/gaohan888/node-js-learning/tree/master/echarts_server

我之前写的一篇博客 使用docker部署springboot项目并连接上mysql数据库
地址:https://blog.csdn.net/hangao233/article/details/104395693

1. docker 下载指定版本mongoDB镜像

1.1 运行mondoDB容器

我使用的mongodb版本是4.1.6,建议也用同样的版本

docker pull mongo:4.1.6

在这里插入图片描述
运行docker容器

docker run --name mymongo -v /home/sxf/sxf/mymongo/data:/data/db -p 27017:27017 -d mongo:4.1.6

参数详解

–name 容器名字
-v 冒号前:宿主机位置,冒号后docker中的位置,在关闭mongodb容器后也能在宿主机中查看数据
-p 27017:27017将主机和宿主机27017端口绑定
-d 运行的容器及版本

在这里插入图片描述

此时可以 docker ps 查看此容器是否已经运行,我的是运行成功
在这里插入图片描述

1.2 服务器的配置

服务器配置总结为三个,防火墙,端口,和安全组

查看防火墙状态,如未开启要开启防火墙,我的是开启的

firewall-cmd --state

如果没开启,开启防火墙的命令

systemctl start firewalld.service

添加对外开放的端口,我之前已经开了三个端口,一个80(Http端口),一个8080(tomcat),一个3306(mysql)

现在再开一个mongoDB端口,也可以不开,我是开了测试一下

firewall-cmd --zone=public --add-port=27017/tcp --permanent

在这里插入图片描述
开完端口,要重新加载防火墙

firewall-cmd --reload

查看开放的端口

firewall-cmd --list-ports

在这里插入图片描述

配置安全组:百度如何配置进入配安全组的地方,按照下图配置的条件配置即可

安全组地址:
https://ecs.console.aliyun.com/?spm=5176.2020520101securitygroup.top-nav.18.37304df5nEyC3T#/securityGroup/region/cn-zhangjiakou

在这里插入图片描述
最后测试环节
我从本机用mongoDB Compass 连接远程服务器用docker跑的服务器容器
在这里插入图片描述
连接成功
在这里插入图片描述

2. docker 下载指定版本 node.js 和将 node.js 后端项目跑起来

2.1 上传 Node.js 项目

我是使用xftp 把本地的node.js 项目上传到 服务器的一个文件夹下
在这里插入图片描述

2.2 编写 Dockerfile 文件

创建一个空文件,命名为 Dockerfile:

touch Dockerfile

编写Dockerfile文件

vim Dockerfile

完整命令, vim的使用方法:点击i开始编写,编写完后点击esc,点击冒号,输入wq保存

完整 Dockerfile 内容

FROM node:16.13.1
WORKDIR /usr/src/echarts
COPY . /usr/src/echarts
RUN npm install
EXPOSE 8888
CMD [ "node", "app.js" ]

解释

FROM : FROM是构建镜像的基础源镜像,node:16.13.1 这个是镜像的名称和对应的版本,也就是我们一开始从服务器上拉下来的那个Image。如果本地没有Docker 会自己pull镜像。

WORKDIR:是将我们创建的文件夹做为工作目录(注意:这个文件路径是镜像内部的文件路径)

COPY:是把服务器当前目录下的所有文件拷贝到镜像的/usr/src/echarts文件夹下。

RUN 使用npm 安装我们的app据需要的所有依赖。

EXPOSE 8888 由于我们的web app监听的是8888端口,我们把这个端口暴露给主机,这样我就能从外部访问web了。

CMD [ “node”, “app.js” ] 是运行这个node.js 项目

在你Dockerfile文件所在的目录下运行下面的命令来构建一个镜像.

docker build -t echarts .

在这里插入图片描述
这就是创建好了镜像

在这里插入图片描述

再去阿里云安全组配置下 8888 端口
在这里插入图片描述
开始运行这个镜像生成容器

docker run --name echarts_server -d -p 8888:8888 echarts

用 docker ps 查看容器
在这里插入图片描述

注意 8888端口的防火墙记得打开哦

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐