小知识:Docker部署SpringBoot应用的实现步骤

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

前言

部署项目时可能会需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。而Docker确巧妙的解决了这些问题,Docker为了解决依赖的兼容问题的,采用了两个手段:

将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包 将每个应用放到一个隔离容器去运行,避免互相干扰

%小知识:Docker部署SpringBoot应用的实现步骤-猿站网-插图

本文将讲解如何使用Docker来部署我们平时用SpringBoot开发的项目:

%小知识:Docker部署SpringBoot应用的实现步骤-1猿站网-插图

Dockerfile

什么是 Dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

%小知识:Docker部署SpringBoot应用的实现步骤-2猿站网-插图

Dockerfile语法

构建自定义的镜像时,并不需要一个个文件去拷贝,打包。

我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。

而描述上述信息的文件就是Dockerfile文件。

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。

%小知识:Docker部署SpringBoot应用的实现步骤-3猿站网-插图

打包SpringBoot项目

准备项目:

项目端口

server.port=8080

在templates文件夹下新建index.html

<!DOCTYPE html> <html lang=”en” xmlns:th=”http://www.thymeleaf.org”> <head> <meta charset=”UTF-8″> <title>Docker部署SpringBoot应用</title> </head> <body> <h1>Docker部署SpringBoot应用</h1> <img src=”/static/img/2.jpg” @RequestMapping(“/”) public String index(){ return “index”; } }

在本地预览效果:

%小知识:Docker部署SpringBoot应用的实现步骤-4猿站网-插图

在本地将SpringBoot应用打包成jar

准备maven-compiler-plugin插件

<build> <!–编译打包后的文件包名–> <finalName>app</finalName> <plugins> <plugin> <!–GAV坐标(G组织id,A项目id,V版本号)–> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <!–配置: 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其 他版本的jdk中运行(对于低版本目标jdk,源代码中不能使用低版本jdk中不 支持的语法),会存在target不同于source的情况–> <configuration> <!–源代码使用的JDK版本–> <source>1.8</source> <!– 需要生成的目标class文件的编译版本 –> <target>1.8</target> <!– 字符集编码,防止中文乱码 –> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>

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

然后执行clean,最后执行package进行项目打包

%小知识:Docker部署SpringBoot应用的实现步骤-5猿站网-插图

出现BUILD SUCCESS说明打包成功了

%小知识:Docker部署SpringBoot应用的实现步骤-6猿站网-插图

打包成功后会出现target文件夹,目录下就会有刚刚打包的jar包

%小知识:Docker部署SpringBoot应用的实现步骤-7猿站网-插图

准备jar包和Dockerfile

复制jar到桌面或自定义位置,在本地创建编写Dockerfile文件(注:名字必须为Dockerfile,去掉后缀名)

%小知识:Docker部署SpringBoot应用的实现步骤-8猿站网-插图

编写Dockerfile

Dockerfile指令

FROM java:8-alpine COPY ./app.jar /tmp/app.jar ENTRYPOINT 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 tmp mkdir docker

选择上传文件

%小知识:Docker部署SpringBoot应用的实现步骤-9猿站网-插图

上传到/tmp/docker目录下

%小知识:Docker部署SpringBoot应用的实现步骤-10猿站网-插图

构建镜像

进入上传文件的目录:cd /tmp/docker,输入ls查看文件

%小知识:Docker部署SpringBoot应用的实现步骤-11猿站网-插图

输入命令构建镜像

docker build -t test:1.0 .

格式:docker build -t 镜像名称:版本号 Dockerfile所在目录路径

命令说明:

build:docker的二级命令

构建镜像

-t

-名称: 一般的镜像名称格式:名称:版本号(test:1.0)

.

Dockerfile所在目录,因为我们已经进入了Dockerfile所在的目录,.代表当前目录

可以看到构建镜像的时候会以我们编写Dockerfile的三条命令分为3个步骤执行

%小知识:Docker部署SpringBoot应用的实现步骤-12猿站网-插图

查看镜像

查看Docker中的镜像命令:

docker images

可以看到我们自定义镜像test

%小知识:Docker部署SpringBoot应用的实现步骤-13猿站网-插图

创建并运行容器

运行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应用的实现步骤-14猿站网-插图

查看正在运行的镜像

正在运行的镜像命令

docker ps

%小知识:Docker部署SpringBoot应用的实现步骤-15猿站网-插图

浏览器访问服务器的8080端口

%小知识:Docker部署SpringBoot应用的实现步骤-16猿站网-插图

手机访问:

%小知识:Docker部署SpringBoot应用的实现步骤-17猿站网-插图

查看日志

查看容器日志命令

docker logs -f springboot

说明:

查看容器日志但是不是实时更新,想要查看新的日志还需要重复运行

docker logs + 容器名称

实时更新日志

docker logs -f + 容器名称

%小知识:Docker部署SpringBoot应用的实现步骤-18猿站网-插图

Docker部署SpringBoot应用教程结束!

到此这篇关于Docker部署SpringBoot应用的文章就介绍到这了,更多相关Docker部署SpringBoot应用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_31762741/article/details/121453707

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:详解用Docker快速搭建一个博客网站

2023-3-13 21:44:16

建站知识

小知识:一文理解 K8s 容器网络虚拟化

2023-3-13 21:59:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索