【玩转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才可访问,例如