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插件
        apporg.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应用的实现步骤

        文章插图

        编写DockerfileDockerfile指令
        FROM java:8-alpineCOPY ./app.jar /tmp/app.jarENTRYPOINT java -jar /tmp/app.jarDockerfile说明
        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应用内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!