SpringBoot服务以Docker部署
最近学习部署服务时,参考了一篇文章,制作了一个简单的SpringBoot服务镜像,并以Docker部署SpringBoot服务。
1. Maven打包SpringBoot项目(jar)
// 先清空再打包
mvn clean package
注意:打包成功之后,项目target目录下会有打好的jar包。此处我们打包为jar包,直接部署在Docker中。如果打为war包,则需要在Docker中先部署Tomcat(或者直接拉取Tomcat镜像),然后再将war包部署在Tomcat中,我们不搞那么复杂。
2. 制作SpringBoot镜像
- 上传项目jar包到服务器
- 在项目jar包同目录下创建Dockerfile文件(必须是这个文件名:Dockerfile)
touch Dockerfile
- 编写Dockerfile
# 拉取基础镜像
FROM java:8
# 设置作者信息
MAINTAINER suiyi "xxx@163.com"
# 把docker-demo-test-1.0-SNAPSHOT.jar添加到容器里,并重命名为app.jar
# 因为docker-demo-test-1.0-SNAPSHOT.jar和Dockerfile在同一个目录下,所以只写文件名即可
ADD docker-demo-test-1.0-SNAPSHOT.jar app.jar
# 设置端口号,此处只开放一个端口8080EXPOSE 8080
# 执行命令,此处运行app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-jar","app.jar"]
- 打包Docker镜像((注意最后有个.号))
docker build -f Dockerfile -t docker-demo-test:v1.0 .
-f:指定Dockerfile文件
-t:指定镜像的标签信息
3. Docker部署Springboot项目
- 查看镜像
docker images
- 运行我们的镜像
// -p后面有两个端口,分别是:宿主机端口:容器端口,注意防火墙策略8080是否开启
docker run -d -p 8080:8080--name=docker-demo-test:v1.0
参考文章:
https://www.jb51.net/article/202556.htm