前言部署项目时可能会需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突给部署带来了极大的困难而Docker确巧妙的解决了这些问题,Docker为了解决依赖的兼容问题的,采用了两个手段:。
将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包将每个应用放到一个隔离容器去运行,避免互相干扰
本文将讲解如何使用Docker来部署我们平时用SpringBoot开发的项目:
Dockerfile什么是 Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Dockerfile语法构建自定义的镜像时,并不需要一个个文件去拷贝,打包我们只需要告诉Docker,我们的镜像的组成,需要哪些BaseImage、需要拷贝什么文件、需要安装什么依赖、启动脚本是什么,将来Docker会帮助我们构建镜像。
而描述上述信息的文件就是Dockerfile文件Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像每一个指令都会形成一层Layer。
打包SpringBoot项目准备项目:项目端口server.port=8080在templates文件夹下新建index.html
=”http://www.thymeleaf.org”>Docker部署SpringBoot应用
>
Docker部署SpringBoot应用
定义主页Controller,跳转到index@Controllerpublicclass indexController { @RequestMapping(“/”)publicStringindex(){ return”index”;}}在本地预览效果:
在本地将SpringBoot应用打包成jar准备maven-compiler-plugin插件app
>org.apache.maven.pluginsmaven-compiler-plugin
3.8.1
1.81.8
UTF-8maven是个项目管理工具,如果不告诉它代码要使用什么样的jdk版本编译,它就会用编译插maven-compiler-plugin默认的jdk版本来处理,这样就容易出现版本不匹配的问题,以至于可能导致编译不通过的问题。
例如代码中要是使用上了Java8的新特性,比如函数式编程,但是maven在编译的时候使用的是Java7,那这一段代码是完全不可能编译成.class文件的为了避免出现这种情况,在构建maven项目的时候,我习惯性第一步就是配置maven-compiler-plugin插件,指定项目源码的jdk 版本,编译后的 jdk 版本,以及编码方式。
然后执行clean,最后执行package进行项目打包
出现BUILD SUCCESS说明打包成功了
打包成功后会出现target文件夹,目录下就会有刚刚打包的jar包
准备jar包和Dockerfile复制jar到桌面或自定义位置,在本地创建编写Dockerfile文件(注:名字必须为Dockerfile,去掉后缀名)
编写DockerfileDockerfile指令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/dockercd tmpmkdir docker
选择上传文件
上传到/tmp/docker目录下
构建镜像进入上传文件的目录:cd /tmp/docker,输入ls查看文件
输入命令构建镜像docker build -t test:1.0 .格式:docker build -t 镜像名称:版本号 Dockerfile所在目录路径命令说明:build:docker的二级命令
构建镜像-t -名称: 一般的镜像名称格式:名称:版本号(test:1.0).Dockerfile所在目录,因为我们已经进入了Dockerfile所在的目录,.代表当前目录可以看到构建镜像的时候会以我们编写Dockerfile的三条命令分为3个步骤执行
查看镜像查看Docker中的镜像命令:docker images可以看到我们自定义镜像test
创建并运行容器运行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 ps
浏览器访问服务器的8080端口
手机访问:
查看日志查看容器日志命令docker logs -f springboot说明:查看容器日志但是不是实时更新,想要查看新的日志还需要重复运行docker logs + 容器名称实时更新日志docker logs -f + 容器名称
Docker部署SpringBoot应用教程结束!,https://blog.csdn.net/qq_31762741/article/details/121453707举报/反馈
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容