欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用Docker运行SpringBoot的WEB应用程序(从生成jar包到运行)

程序员文章站 2024-02-02 10:30:22
...

1、IDEA中SpringBoot导出jar包

在IDEA最右边选择maven选项->选中你的工程->Lifecycle->package如下图所示:
使用Docker运行SpringBoot的WEB应用程序(从生成jar包到运行)
点击package后maven项目会进行打包操作,最后生成jar包。
使用Docker运行SpringBoot的WEB应用程序(从生成jar包到运行)
上图截图中写出了生成的jar包的位置。

2、将生成的jar包上传到服务器

(若生成的jar包和运行服务器在同一台主机上,则可以省略该步骤)此处采用scp指令进行复制,scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。代码实现如下所示:

scp -r E:\Code\Java\canteenmanage\target\canteen.jar aaa@qq.com:/usr/zhiqiangw

其中E:\Code\Java\canteenmanage\target\canteen.jar 是指本地打包生成的jar包的路径,aaa@qq.com分别指登陆用户名和服务器的IP,/usr/zhiqiangw 是指复制文件需要放到的位置。
经过上述命令可以将canteen.jar上传到114.116.7.87服务器的/usr/zhiqiangw路径下。

3、使用Dockerfile构建镜像

下面操作时在服务器中的操作,可以通过ssh等进行登陆

ssh 用户名@ip

1、首先jar包的执行需要jre,所以先下载带有jre的镜像作为基础镜像:

docker pull openjdk:8u212-jre-alpine

注意docker的执行需要root权限或docker用户组权限,可以将用户用户加入docker用户组便于操作:下述代码的作用就是将用户名指定的用户加入docker用户组,处于docker用户组的用户又权限执行docker操作

usermod -aG docker 用户名

2、编写Dockerfile
如下所示

FROM openjdk:8u212-jre-alpine
#创建工作目录
WORKDIR /home/web
#将文件复制到镜像中
COPY canteen.jar /home/web/canteen.jar
#运行命令
CMD ["java","-jar","/home/web/canteen.jar"]

主要COPY canteen.jar /home/web/canteen.jar 这样写则需要运行的jar包要于Dockerfile文件放在同一个目录下,目录结构如下所示:
使用Docker运行SpringBoot的WEB应用程序(从生成jar包到运行)
3、执行docker build 构建镜像

docker build -t canteen_web .

执行改代码时应在Dockerfile所在的目录下,并且不要忘记最后一个.
这个.的意思时当前文件夹下的所有内容。
4、通过刚才生成的镜像构建容器

docker run --name canteen_web -d -p 8080:8080 926a17ced220

注意:
(1)926a17ced220是指刚才通过Dockerfile构建的镜像。
(2)-p 8080:8080 不要忘记使用-p打开端口映射,也可以使用-P参数打开所有的端口映射。
(3)-d代表是以守护进程的形式执行容器,即容器一直会执行不会进入后台。
容器执行完之后就可以通过浏览器访问jar包对应的web应用程序