脚本宝典收集整理的这篇文章主要介绍了使用Docker部署SpringBoot项目,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
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。
可以使用scp命令,使用scp命令在Windows和Linux之间拷贝文件
docker build -t cnblogs .
-t指定镜像名称,最后的.
指定上下文路径。
docker run --name cnblogs -p 8081:8081 -d cnblogs
-d表示后台运行,-p设置映射端口号。
注意开放服务器防火墙对端口8081的访问。
使用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文件
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
可以看到HTTPS证书已经生效,
Docker - 部署Java SpringBoot应用程序 Docker Dockerfile 一文说清楚Dockerfile 中VOLUME到底有什么用? SpringBoot系列——启用https
以上是脚本宝典为你收集整理的使用Docker部署SpringBoot项目全部内容,希望文章能够帮你解决使用Docker部署SpringBoot项目所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。