docker 搭建 web_初见Spring boot并使用Docker部署应用

前言

本小节先搭建一个最简单的spring boot2.x的web项目,并使用Docker进行部署,这是在开篇文章【在Windows10上安装Docker】基础上,是在spring boot2.x整合各类中间件和框架的开篇之前一个比较重要的学习前提,旨在帮助新手了解Spring boot和Docker,能够初步了解一些Docker的基本命令,了解Dockerfile,也可以帮助大家初步了解一下Spring boot

一.初识spring boot 和 docker

本章环境 Window10 Itellij IDEA 2019.2 docker19

1.搭建spring-boot hello项目,这个大家应该都会,简单地描述一下使用Itellij IDEA搭建的流程

1.1 打开IDEA,选择Create New Project,选择Spring Initilizr,点击Next

35677287-e80c-495f-9819-0f0fb9b9ef55

1.2 填写project metadata,填写groupId 和 artifactId 点击Next

04fb1ad2-c9aa-40b4-bad2-bb0c29309547

1.3 勾选依赖,因为我们这个项目是一个Hello world的spring boot项目,只需要让我们入门,并且能够docker部署,所以我们这边只选择spring bootweb的最基本的denpencies,spring boot版本我们也选择当前比较高的版本2.1.8,点击Next

17b61523-c4c8-49cb-a66a-acdfb1e64cee

1.4 确认项目名,没有问题后,点击Finish

45178f92-e253-43da-874c-e454ecd4c3d4

1.5 进入IDEA,可以看到这个项目的完整项目骨架

cd0b07aa-49ad-41fb-8716-d66bed762af2

1.6 检查pom.xml 依赖 如果没有web依赖,手动加一下,需要注意的是plugins是一定不能或缺的,这是生成可执行jar包的关键

org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test testorg.springframework.boot spring-boot-maven-plugin 

1.7 新建controller HelloController.java

package org.lyn.bazinga.controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloController { @GetMapping(value = "/hello") public String hello(){ return "hello spring boot & docker"; }}

1.8 修改后整个项目结构图

931f3401-4bbd-4263-b694-2c36447341a2

1.9 启动SpringBootBazingaApplication的main函数,启动日志如下,浏览器打开localhost:8080/hello 就能访问到hello spring boot & docker,这是很简单的spring boot 的hello world

a0073278-0d05-4ffd-a578-82cbb459930e

二.制造Docker镜像

​在本系列教程的第一个Docker入门教程中,曾经简单的介绍过Docker的一些基本概念,例如镜像,容器 这2个最基本的概念,先简单地解释一下镜像和容器的概念

​解释方法一:如果你曾经安装过操作系统,肯定知道iso文件,有了这个iso文件,你才能安装操作系统,从概念模型上来说,iso就是镜像,用这个iso文件成功安装的操作系统对应的概念就是容器

​解释方法二:如果你是一个java开发工程师,java文件编译好的class文件就是镜像,class文件被java类加载器成功加载之后的java实例对象就是容器

​总而言之,有了镜像才会有容器,在那个Docker入门教程中,讲了一种获取Docker镜像的方式,就是通过【docker pull imageName:imageVersion】的方式去docker的官方仓库去拉取别人已经制造好的镜像,还有一种就是我们自己编写Dockerfile的方式,然后通过【docker build】命令的方式来生成属于自己的镜像,本小节我们就要我们刚才搭建的最简单的spring boot hello world工程制作一个最简单的镜像

2.1 回到我们刚刚的项目,先进行maven打包,生成可执行的jar,maven打包命令【mvn clean package -Dmaven.test.skip=true】

4999e871-037b-41bf-9c89-a6d247b29b5b
bec2dbfb-dacf-49dd-94c5-f70384e49aab

打包结束结果如下展示,打包成功,我们然后再项目结构中的target目录下多一个spring-boot-bazinga-0.0.1-SNAPSHOT.jar

ad8bf786-d215-4695-a0b9-50637af66697

2.2 编写Dockerfile,什么是Dockerfile,我们可以简单的类比一下,如果docker的镜像是一粒种子,那么Dockerfile相当于这颗种子的DNA,规定了你制作的镜像种子的基本结构,规定了这粒种子以后生根发芽长出来的果实(容器)的形状,废话不多说,在项目下新建Dockerfile,有了这个Dockerfile,我们就像有了一颗种子,我们可以让这粒种子按照我们的规定的DNA生根发芽,长成我们需要的果实

b4398cd4-df79-4117-aaf0-271216df3bae

注意,Itellij IDEA可以安装docker的插件,这样可以更好的支持编写正确的Dockerfile,安装Docker插件和安装其他插件一般无二,安装完只需要重启一下IDEA就可以了

0d329062-8e15-4b7a-b988-c5e1ea1511b0

2.3 Dockerfile具体内容

FROM openjdk:8MAINTAINER bazinga bazinga@163.comCOPY target/spring-boot-bazinga-0.0.1-SNAPSHOT.jar /spring-boot-bazinga.jarEXPOSE 8080ENTRYPOINT ["java
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值