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容器无法ping外网的问题

    解决docker容器无法ping外网的问题

    在本篇文章里小编给大家分享的是关于解决docker容器无法ping外网的问题,有需要的朋友们可以参考下。
    2020-03-03
  • docker运行nginx镜像的实现步骤

    docker运行nginx镜像的实现步骤

    这篇文章主要介绍了docker运行nginx镜像的实现,并将配置文件和目录挂载到宿主机上,以实现方便统一的管理配置信息,感兴趣的可以了解一下
    2023-10-10
  • Docker-compose 建立ELK集群的实现方法

    Docker-compose 建立ELK集群的实现方法

    这篇文章主要介绍了Docker-compose 建立ELK集群的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 完美解决Windows10下无法对docker容器进行端口访问的操作

    完美解决Windows10下无法对docker容器进行端口访问的操作

    这篇文章主要介绍了完美解决Windows10下无法对docker容器进行端口访问的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Docker如何查看容器映射路径

    Docker如何查看容器映射路径

    这篇文章主要介绍了Docker如何查看容器映射路径问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Docker容器开启设置自动启动的实现方法

    Docker容器开启设置自动启动的实现方法

    通过在Docker中设置容器的默认启动命令,我们可以实现在容器启动时自动启动服务的功能,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 浅谈docker-compose网络设置之networks

    浅谈docker-compose网络设置之networks

    这篇文章主要介绍了浅谈docker-compose网络设置之networks,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • docker打包golang应用的过程分析

    docker打包golang应用的过程分析

    这篇文章主要介绍了docker打包golang应用的过程分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • docker compose快速开始超详细教程

    docker compose快速开始超详细教程

    docker-compose是基于docker的开源项目,托管于github上,由python实现,调用 docker服务的API负责实现对docker容器集群的快速编排,即通过一个单独的yaml文件,来定义一组相关的容器来为一个项目服务,本文给大家介绍docker compose快速开始,感兴趣的朋友一起看看吧
    2022-05-05
  • docker 创建RedHat8.5镜像的命令

    docker 创建RedHat8.5镜像的命令

    这篇文章主要介绍了docker 创建RedHat8.5镜像的命令,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03

最新评论