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部署Go程序

    详解如何在Docker部署Go程序

    Docker是一种轻量级的容器技术,可以为应用程序的部署提供统一、可移植的运行环境,下面我们来讲讲如何将Go应用程序部署到Docker的容器吧
    2023-08-08
  • 解决docker run时候启动两个占有不同端口的问题

    解决docker run时候启动两个占有不同端口的问题

    这篇文章主要介绍了解决docker run时候启动两个占有不同端口的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker mysql镜像因为配置文件出现错误一直提示重启的解决

    docker mysql镜像因为配置文件出现错误一直提示重启的解决

    这篇文章主要介绍了docker mysql镜像因为配置文件出现错误一直提示重启的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • CentOS7.3中Docker的安装教程

    CentOS7.3中Docker的安装教程

    Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。这篇文章主要给大家介绍CentOS7.3中Docker的安装教程,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2017-04-04
  • python 编写输出到csv的操作

    python 编写输出到csv的操作

    这篇文章主要介绍了python 编写输出到csv的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Docker Volumn容器间共享数据的实现

    Docker Volumn容器间共享数据的实现

    这篇文章主要介绍了Docker Volumn容器间共享数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Docker-compose安装的全过程

    Docker-compose安装的全过程

    这篇文章主要介绍了Docker-compose安装的全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • docker 容器中安装mysql服务的方法

    docker 容器中安装mysql服务的方法

    这篇文章主要介绍了docker容器中安装mysql服务的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 创建Web项目的Docker镜像实例讲解

    创建Web项目的Docker镜像实例讲解

    这篇文章主要介绍了创建Web项目的Docker镜像实例讲解的相关资料,需要的朋友可以参考下
    2016-10-10
  • 使用Docker安装detectron2的配置方法

    使用Docker安装detectron2的配置方法

    Detectron2 是一个用于目标检测、分割和其他视觉识别任务的平台,下面采用 docker 方式在 windows 上安装,对Docker安装detectron2的配置方法感兴趣的朋友一起看看吧
    2024-03-03

最新评论