【玩转Docker容器 3】基于Docker部署SpringBoot项目

@TOC


推荐个人Docker文章,讲的非常详细

【玩转Docker容器 1】Dockerd的详解及安装
【玩转Docker容器 2】基于Docker一分钟搭建完 Jdk、Mysql、Nginx、Redis、Tomcat环境
【玩转Docker容器 3】基于Docker部署SpringBoot项目
【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解
【玩转Docker容器 5】基于Docker搭建Maven私服,以及项目如何使用Maven私服详解
【玩转Docker容器 6】基于Docker构建GitLab管理代码
【玩转Docker容器 7】基于Docker安装Jenkins实现自动化构建、部署、测试、监控项目

提供一个简单的项目

有的话就可以自己部署自己的项目 在这里插入图片描述 我这里提供一个简单的基于SpringBoot开发的APP后端架构项目, 就是连接了使用了Redis和mysql,使用了JWT 生成Token使用Shiro实现了登录等一些软件必须有的接口

链接:pan.baidu.com/s/1LZtHSyXY… 提取码:hsjp

我已经封装成jar包了,没有项目测试部署可以下载下来试试看,第一步操作我已经做完了

1.修改application.yml或者application.properties文件

把端口号,nysql,redis的地址及密码等 ,一些需要动态改变的地址改成类似于

# 端口号
server:
  port: ${port:8888}
复制代码

在这里插入图片描述 在这里插入图片描述 为什么要改成这样? 如果我们不改这些都是采用硬编码的方式进行编写,所以我们要让端口、URL地址采用动态改变。在部署的时候进行填写

改成这样其实本机还是可以运行的

2.打包成jar包

点击右上角,找到package 打包 在这里插入图片描述

3.上传项目到linux中

#创建文件夹 以及进入文件夹
mkdir /opt/dockerapp
cd /opt/dockerapp
复制代码

在这里插入图片描述 输入rz上传jar包至 /opt/dockerapp中

rz
复制代码

在这里插入图片描述

4. 制作Docker镜像

上传完后切记:整个过程一定要在/opt/dockerapp文件夹中操作

在此文件夹输入命令:(实现对Dockerfile文件进行编辑,添加如下所示命令。)
vi Dockerfile

在此文件中填入
FROM java:8												#指定java8环境镜像
COPY ./lijie-example-boot-2.0.jar /app-springboot.jar	#将当前目录下的jar文件拷贝到特定目录
COPY ./app-entrypoint.sh /								#再拷贝一个脚本文件
RUN chmod +x /app-entrypoint.sh							#再给这个脚本文件设置一个可执行的权限。
ENTRYPOINT ["/app-entrypoint.sh"]						#运行此文件配置容器启动后执行的命令
复制代码

在这里插入图片描述

编写pp-entrypoint.sh文件编辑,添加如下所示命令。
vi app-entrypoint.sh

在此文件输入:(注:下面诸如$PORT是在使用docker create创建容器时设置的环境变量)
重点:(这里是配置那些属性需要动态的赋值,在底下创建容器时指定)
#!/bin/bash
java -jar -Dport=$PORT -DmysqlHost=$MYSQLHOST -DmysqlPassword=$MYSQLPASSWORD -DredisHost=$REDISHOST -DredisPort=$REDISPORT -DredisPassword=$REDISPASSWORD -DuploadPath=$UPLOADPATH /app-springboot.jar
复制代码

在这里插入图片描述

在此输入构建镜像命令:(后面的:1.0  是自定义版本)
docker build -t lijie-example-boot-2.0.jar:1.0 .
复制代码

在这里插入图片描述

查看创建的镜像
docker images
复制代码

在这里插入图片描述

5.创建Docker容器

创建容器命令:(这里是动态的赋值配置文件) 根据自己实际情况来赋值,注意

创建容器命令:(这里是动态的赋值配置文件)
docker create --name app-springboot -t -p 8080:7000 -e PORT=7000 -e MYSQLHOST=120.77.0.58:3303/lijie -e MYSQLPASSWORD=123456 -e REDISHOST=120.77.0.58 -e REDISPORT=16379 -e REDISPASSWORD='' -e UPLOADPATH=/opt/java/uploadImage lijie-example-boot-2.0.jar:1.0
复制代码

在这里插入图片描述

查看所有容器
docker ps -a
复制代码

在这里插入图片描述

6.启动自己创建的Docker容器

找到我们自己的项目容器id,运行下面命令
docker start 容器id运行
复制代码

在这里插入图片描述

查看容器日志看一下,是否成功
docker logs 容器id
复制代码

在这里插入图片描述 发现已经成功启动了,端口号就是自己创建容器是定义的端口号

7.外网访问项目

1.先找到Linux的lp地址,如果知道IP地址就跳过

如果是虚拟机先关闭防火墙
systemctl stop firewalld

输入ifconfig查看IP地址
ifconfig
复制代码

在这里插入图片描述

如果是阿里云服务器,找到自己的服务器公共IP地址,并且打开开放8080端口号 具体步骤访问:阿里云服务器配置外网访问,打开8080端口 在这里插入图片描述

配置好了上面后即可访问项目,此项目只有后端 输入:(IP地址+端口号+/doc.html) 即可查看后端接口 例如 http://120.77.0.34:8080/doc.html 在这里插入图片描述

8.测试项目

此项目只能查看后端,这是给app提供的java后端项目

除了俩个登录接口(后端登录,app登录)的token是可以随便填写的,其他的接口需要使用的话,必须登录后拿去正确的token才可使用

1.下面是测试登录接口(用户名:admin 密码:123456 token随便填) 在这里插入图片描述

而其他接口的话,就需要正确的token才可访问,例如 在这里插入图片描述

来源:https://juejin.cn/post/7006343844723687437
posted @ 2022-12-24 22:04  程序员小明1024  阅读(218)  评论(0编辑  收藏  举报