Docker部署SpringBoot应用的实现步骤

目录

  • 前言
  • Dockerfile
    • 什么是 Dockerfile?
    • Dockerfile语法
  • 打包SpringBoot项目
    • 在本地将SpringBoot应用打包成jar
  • 准备jar包和Dockerfile
    • 编写Dockerfile
  • 使用工具将jar和Dockerfile上传到服务器
    • 构建镜像
      • 查看镜像
        • 创建并运行容器
        • 查看正在运行的镜像
      • 查看日志

        前言 部署项目时可能会需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。而Docker确巧妙的解决了这些问题,Docker为了解决依赖的兼容问题的,采用了两个手段:
        1. 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
        2. 将每个应用放到一个隔离容器去运行,避免互相干扰
        Docker部署SpringBoot应用的实现步骤
        文章图片

        本文将讲解如何使用Docker来部署我们平时用SpringBoot开发的项目:
        Docker部署SpringBoot应用的实现步骤
        文章图片


        Dockerfile
        什么是 Dockerfile?
        Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
        Docker部署SpringBoot应用的实现步骤
        文章图片


        Dockerfile语法
        构建自定义的镜像时,并不需要一个个文件去拷贝,打包。
        我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。
        而描述上述信息的文件就是Dockerfile文件。
        Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
        Docker部署SpringBoot应用的实现步骤
        文章图片


        打包SpringBoot项目 准备项目:
        项目端口
        server.port=8080

        在templates文件夹下新建index.html
        Docker部署SpringBoot应用 - 锐客网Docker部署SpringBoot应用Docker部署SpringBoot应用的实现步骤
        文章图片

        定义主页Controller,跳转到index
        @Controllerpublic class indexController {@RequestMapping("/")public String index(){return "index"; }}

        在本地预览效果:
        Docker部署SpringBoot应用的实现步骤
        文章图片


        在本地将SpringBoot应用打包成jar
        准备maven-compiler-plugin插件
        app org.apache.maven.pluginsmaven-compiler-plugin3.8.11.81.8UTF-8

        maven是个项目管理工具,如果不告诉它代码要使用什么样的jdk版本编译,它就会用编译插maven-compiler-plugin默认的jdk版本来处理,这样就容易出现版本不匹配的问题,以至于可能导致编译不通过的问题。例如代码中要是使用上了Java8的新特性,比如函数式编程,但是maven在编译的时候使用的是Java7,那这一段代码是完全不可能编译成.class文件的。为了避免出现这种情况,在构建maven项目的时候,我习惯性第一步就是配置maven-compiler-plugin插件,指定项目源码的jdk 版本,编译后的 jdk 版本,以及编码方式。
        然后执行clean,最后执行package进行项目打包
        Docker部署SpringBoot应用的实现步骤
        文章图片

        出现BUILD SUCCESS说明打包成功了
        Docker部署SpringBoot应用的实现步骤
        文章图片

        打包成功后会出现target文件夹,目录下就会有刚刚打包的jar包
        Docker部署SpringBoot应用的实现步骤
        文章图片


        准备jar包和Dockerfile 复制jar到桌面或自定义位置,在本地创建编写Dockerfile文件(注:名字必须为Dockerfile,去掉后缀名)
        Docker部署SpringBoot应用的实现步骤
        文章图片


        编写Dockerfile
        Dockerfile指令
        FROM java:8-alpineCOPY ./app.jar /tmp/app.jarENTRYPOINT java -jar /tmp/app.jar

        Dockerfile说明
        FROM java:8-alpine:
        基于java8构建镜像,默认构建java镜像需要安装配置环境变量,而java:8-alpine这个镜像已经帮我们把前面的步骤都做完了
        COPY ./app.jar /tmp/app.jar
        复制jar包
        ENTRYPOINT java -jar /tmp/app.jar
        入口命令

        使用工具将jar和Dockerfile上传到服务器 上传位置看个人,我存放的位置:/tmp/docker
        cd tmpmkdir docker

        选择上传文件
        Docker部署SpringBoot应用的实现步骤
        文章图片

        上传到/tmp/docker目录下
        Docker部署SpringBoot应用的实现步骤
        文章图片


        构建镜像 进入上传文件的目录:cd /tmp/docker,输入ls查看文件
        Docker部署SpringBoot应用的实现步骤
        文章图片

        输入命令构建镜像
        docker build -t test:1.0 .

        格式:docker build -t 镜像名称:版本号 Dockerfile所在目录路径
        命令说明:
        build:docker的二级命令
        • 构建镜像
        -t
        • -名称: 一般的镜像名称格式:名称:版本号(test:1.0)
        .
        • Dockerfile所在目录,因为我们已经进入了Dockerfile所在的目录,.代表当前目录
        可以看到构建镜像的时候会以我们编写Dockerfile的三条命令分为3个步骤执行
        Docker部署SpringBoot应用的实现步骤
        文章图片


        查看镜像 查看Docker中的镜像命令:
        docker images

        可以看到我们自定义镜像test
        Docker部署SpringBoot应用的实现步骤
        文章图片


        创建并运行容器
        运行Docker镜像命令:
        docker run --name springboot -p 8080:8080 -d test:1.0

        命令说明:
        docker run: docker二级命令
        • 创建并运行容器
        --name
        • 定义容器名称,后面跟上容器名称(springboot)
        -p端口映射
        • 左边端口为Linux的端口 ,右边为容器的端口号
        • 将linux端口映射在容器端口号上,这样访问linux端口等于访问容器端口号
        -d
        • 后台运行容器 ,否则退出之后容器就会停止运行
        test:1.0–>镜像名称
        • 选择自定义镜像test 的1.0版本来创建容器
        创建并运行容器成功!
        Docker部署SpringBoot应用的实现步骤
        文章图片


        查看正在运行的镜像
        正在运行的镜像命令
        docker ps

        Docker部署SpringBoot应用的实现步骤
        文章图片

        浏览器访问服务器的8080端口
        Docker部署SpringBoot应用的实现步骤
        文章图片

        手机访问:
        Docker部署SpringBoot应用的实现步骤
        文章图片


        查看日志 查看容器日志命令
        docker logs -f springboot

        说明:
        查看容器日志但是不是实时更新,想要查看新的日志还需要重复运行
        docker logs + 容器名称

        实时更新日志
        docker logs -f + 容器名称

        Docker部署SpringBoot应用的实现步骤
        文章图片

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

          推荐阅读