Docker部署SpringBoot项目的实现步骤

 更新时间:2024年04月01日 17:06:38   作者:登山望楼  
本文主要介绍了Docker部署SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

今天准备软考的时候,学习到智能运维的知识,脑海里面突然想到项目发布管理,回忆起本科部署项目的方式就是用maven打个jar包然后使用命令部署到服务器:nohup java -jar jar包名称 & ,后台启动项目,并且将日志输入到nohup.out文件中。这种部署方式快是挺快的,遇到的问题就是如果有多个项目的话,不方便管理,而且不适合迁移。于是像尝试用docker部署一下,熟悉一下流程。

步骤一:使用mvn package 打包

步骤二:使用scp 命令将文件上传至服务器的指定目录: scp XX.jar root@ip:/home/javaprojects/

步骤三:在服务端安装docker,命令 apt install docker.io ,然后将启动docker ,systemctl start docker

步骤四: 配置docker镜像清华源,在/etc/docker 的daemon.json文件(没有就创建一个)中添加镜像地址,内容如下:

{
“registry-mirrors”: [“https://docker.mirrors.tuna.tsinghua.edu.cn”]
}

然后重启docker服务,systemctl restart docker,

步骤五:制作dockerfile文件

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

解释下这个配置文件:

VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
项目的 jar 文件作为 “app.jar” 添加到容器的
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source

如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

步骤6
制作镜像:

docker build -t springbootdocker . 

步骤7
启动容器

 docker run -d -p 8080:8085 springbootdocker

-d参数是让容器后台运行
-p 是做端口映射,此时将服务器中的8080端口映射到容器中的8085(项目中端口配置的是8085)端口,这样就可以通过8080端口访问接口服务了。

参考文章:https://www.jianshu.com/p/397929dbc27d

到此这篇关于Docker部署SpringBoot项目的实现步骤的文章就介绍到这了,更多相关Docker部署SpringBoot项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker update命令动态更新容器配置

    docker update命令动态更新容器配置

    Docker的docker update命令提供了一种在不停止容器的情况下动态调整其资源配置的能力,从而优化性能或满足特定需求,本文详细介绍了docker update命令的使用方法、常用选项如CPU和内存限制,感兴趣的可以了解一下
    2024-10-10
  • Docker基本命令使用详解(推荐)

    Docker基本命令使用详解(推荐)

    因为工作中需要将服务容器化,所以最近开始学习Docker相关的知识,对于Docker入门常用的命令总结下分享到脚本之家平台,需要的的朋友参考下
    2017-03-03
  • Docker镜像保存为文件及从文件导入镜像的方法

    Docker镜像保存为文件及从文件导入镜像的方法

    本篇文章主要介绍了Docker镜像保存为文件及从文件导入镜像的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 在docker中部署k8s的方法

    在docker中部署k8s的方法

    这篇文章主要介绍了在docker中部署k8s的方法,包括K8S的基本概念介绍,docker容器的下载方法及k8s相关命令介绍,感兴趣的朋友一起看看吧
    2021-07-07
  • 如何下载docker日志到本地

    如何下载docker日志到本地

    这篇文章主要介绍了如何下载docker日志到本地问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • docker常用命令解读之volume篇

    docker常用命令解读之volume篇

    这篇文章主要介绍了docker常用命令解读之volume篇说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker 数据卷及数据容器详细介绍及示例

    Docker 数据卷及数据容器详细介绍及示例

    这篇文章主要介绍了Docker 数据卷及数据容器详细介绍及示例的相关资料,Docker 很强大,不仅部署维护提高效率,docker和宿主之间的数据共享以及docker间的数据共享需要好好研究一下,需要的朋友可以参考下
    2016-11-11
  • 如何对已有docker容器增加新的端口映射详解

    如何对已有docker容器增加新的端口映射详解

    最近使用Docker作为容器部署项目的时候,发现有个问题就是容器只能在启动的时候配置预先配置端口,但是往往实际应用的过程中会发现端口不够用,下面这篇文章主要给大家介绍了关于如何对已有docker容器增加新的端口映射的相关资料,需要的朋友可以参考下
    2022-08-08
  • Docker容器应用日志查看方法

    Docker容器应用日志查看方法

    今天小编就为大家分享一篇关于Docker容器应用日志查看方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • docker compose部署cassandra集群的操作代码

    docker compose部署cassandra集群的操作代码

    这篇文章主要介绍了docker compose部署cassandra集群的操作代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03

最新评论