Springboot项目基于docker在阿里云实现部署

前言:利用三天时间学习docker并成功将一个前后端分离的项目部署到了阿里云服务器,过程遇到很多问题,也都一一解决,以下内容作记录参考。

1、准备工作及需要用到的工具

阿里云服务器、finalShell、docker、Navicat

1.1、阿里云服务器

我这里买了一个轻量级的服务器,够用了,第一次买回便宜一些。

1.2、finalShell

finalshell是一个国产远程连接工具,类似于mobaxterm、xshell,操作起来比较简单

1.3、docker

下载docker以及配置阿里云的加速器镜像(容器镜像服务 (aliyun.com)

执行

docker info

到这里就可以看到docker的相关的信息,以及加速器镜像

1.4、Navicat 

这里数据库我用了Navicat ,大家各取所需。

以上就是准备工作

2、打包工作

2.1、后端打包

首先我们需要将yml配置文件中的数据库地址改为我们服务器的地址,如图

然后使用maven中install进行打包得到一个jar包,可以先copy到一个文件中备用 。

2.2、前端打包

我这里使用的是vue脚手架,打包方式如下:

1、首先还是需要在前端文件中对路由地址进行修改,将原来的localhost改为服务器地址

2、打包步骤如下 ,如果使用webstorm则使用命令npm run build 

 打包后会得到一个dist文件,也是同样copy出来备用。

3、制作镜像

这里我们需要先拉取mysql镜像(后面可以加版本号,不加默认是最新版本)

docker pull mysql

查看mysql镜像

docker images

 运行mysql

docker run -d --name mymysql -p 3306:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql

-d:后台运行容器

--name:给容器起个名字

-p:制定映射端口,宿主机端口:容器端口

-v:绑定一个卷,容器的/var/lib/mysql映射到宿主机的/data/mysql目录

-e MYSQL_ROOT_PASSWORD=123456:设置环境变量,密码设置为123456,不指定的会默认分配随机密码

mysql:使用的镜像

3.1、制作后端镜像

3.1.1、首先我们需要在后端jar包的同级文件下新建Dockerfile文件,内容如下

FROM java:8 
VOLUME /tmp
ADD clinic.jar clinic.jar
EXPOSE 8091
ENTRYPOINT ["java","-jar","/clinic.jar"]

FROM java:8 基础镜像

VOLUME:挂载的目录

ADD clinic.jar clinic.jar:将你上传的jar包重新命名并在容器中运行

EXPOSE:暴露的端口

ENTRYPOINT:容器启动后执行的命令

3.1.2、打包镜像

docker build -t clinic .

注:最后的.不能忽略,表示当前目录的所有文件

3.1.3、运行容器

docker run -d -p 8091:8091 --name clinic-8091 clinic

3.2、制作前端镜像

3.2.1、在前端文件夹dist的同一级文件夹下新建一个Dockerfile文件,文件内容如下

FROM nginx:latest
COPY ./dist /usr/share/nginx/html/
EXPOSE 80

3.2.2、打包镜像

docker build -t clinic-ui

3.2.3、运行容器

docker run -d -p 80:80 --name clinic-ui-80 clinic-ui

最终效果

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值