使用Docker部署SpringBoot项目

发布时间:2022-06-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用Docker部署SpringBoot项目脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

项目打包

使用Docker部署SpringBoot项目

编写Dockerfile

Dockerfile是一种描述文件,可以让我们更灵活的构建自己的镜像。

# Docker image for springboot file run
# VERSION 0.0.1
# Author: SZZ
# 基础镜像使用openjdk
FROM openjdk:11
# 作者
MAINTAINER SZZ
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD cnblogs-1.0-SNAPSHOT.jar app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","/app.jar"]

VOLUME用来在/var/lib/docker目录下创建/tmp目录并关联到容器内的/tmp目录,因为SpringBoot内嵌的Tomcat默认工作目录为/tmp(Linux下),此步骤可选。 更多关于Dockerfile的信息,可以查看Docker Dockerfile。

将jar包和Dockerfile文件上传到服务器

可以使用scp命令,使用scp命令在Windows和Linux之间拷贝文件

构建镜像

docker build -t cnblogs .

-t指定镜像名称,最后的.指定上下文路径。

创建并启动容器

docker run --name cnblogs -p 8081:8081 -d cnblogs

-d表示后台运行,-p设置映射端口号。

浏览器访问

使用Docker部署SpringBoot项目

注意开放服务器防火墙对端口8081的访问。

配置HTTPS证书

生成证书

使用JDK自身的keytool工具生成证书,keytool工具在JDK安装路径的bin目录下

.keytool.exe  -genkeypair -alias tomcat_https -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/testjar/tomcat_https.keystore -storepass 123456

-alias:别名 -keypass:指定生成密钥的密码 -keyalg:指定密钥使用的加密算法 -keysize:密钥大小(位数) -validity:过期时间(单位天) -keystore:指定存储密钥的密钥库的生成路径和名称 -storepass:指定访问密钥库的密码

主要填写内容如下

您的名字与姓氏是什么?
  [Unknown]:  S
您的组织单位名称是什么?
  [Unknown]:  SZZ
您的组织名称是什么?
  [Unknown]:  SZZ
您所在的城市或区域名称是什么?
  [Unknown]:  SH
您所在的省/市/自治区名称是什么?
  [Unknown]:  SH
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=S, OU=SZZ, O=SZZ, L=SH, ST=SH, C=CN是否正确?
  [否]:  Y

最终生成tomcat_https.keystore文件

SpringBoot项目配置HTTPS

server:
  port: 8081
  servlet:
    context-path: /cnblogs
  ssl:
    enabled: true
    key-store: classpath:tomcat_https.keystore
    key-store-type: JKS
    key-store-password: 123456

将tomcat_https.keystore文件放到项目的resources目录下。

再次部署

项目重新打包,将jar包上传到服务器,拷贝到Docker容器内部的根目录下

docker cp app.jar f704e0bb6a7a:/

容器重启

docker restart f704e0bb6a7a

使用Docker部署SpringBoot项目

可以看到HTTPS证书已经生效,

参考

Docker - 部署Java SpringBoot应用程序 Docker Dockerfile 一文说清楚Dockerfile 中VOLUME到底有什么用? SpringBoot系列——启用https

脚本宝典总结

以上是脚本宝典为你收集整理的使用Docker部署SpringBoot项目全部内容,希望文章能够帮你解决使用Docker部署SpringBoot项目所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: