起步就不罗嗦了,今天通过了认证开始写自己的原创技术文章,不管有没有看就当锻炼自己了,当然小小的关注也是一种鼓励。
docker 是啥?好处是啥? 什么现在如果作为一名开发你还不知道甚至没有用过我都感觉你落伍了。docker 是一种虚拟化的容器技术,目的为了打造持续集成、版本控制、可移植性、隔离性和安全性的应用集成。这都是官话。其实我认为最简单的理解就是docker 能给你的应用打造一套隔离的应用环境。只要能跑docker的环境,不管是linux,还是mac,还是windows都能快速把你的应用部署过来甚至达到秒级启动。如果你有个mysql集群镜像,你瞬间就能启动一个mysql集群,如果让你用手撸一个估计得一袋烟的工夫。看到这里如果没用过docker,赶紧找资料学习去,并不难学。别忘记关注一下,回来接着下面的干货分享。
说完docker就该说springboot了,这个目前在java web界秀得飞起。作为spring家族的后继者,有着配置简化,快速启动,模块化的优点。只要搞java web的目前应该不会不知道。目前最新的GA版本(生产可用)已经是2.1.5.RELEASE。罗嗦这么多开始撸码。 规矩上来先说明环境配置。
- springboot 版本2.1.5.RELEASE
- jdk版本 java 8 这里可以选择openjdk8 或者 oracle jdk8
- docker 环境 自己可以选择 linux,mac或者win 没有区别
- 开发工具 idea2019旗舰版
通过这个入口初始化一个简单的springboot web maven应用,点下一步。
自己修改下包路径或者不修改直接下一步在 web栏目中勾选spring web starter 以保证我们能写个简单的springmvc 接口。然后下一步,下一步直到操作完。检查pom.xml 是否跟我一样。
org.springframework.boot spring-boot-starter-web
然后写一个接口如下
启动main 函数后浏览器跑一下 http://localhost:8080/docker/hello 看看出现如下结果表示没有问题。
接下来我们要把spring boot打包成可执行jar
点击上图的 package 或者熟悉maven的 用高逼格命令行操作 mvn clean package 编译好
会有
下来该编写docker创建镜像的打包脚本,名称必须是Dockerfile,位置为项目根目录,还有其他插件操作位置不尽相同。内容如下
然后在项目目录下打开命令行(idea 自带有)执行脚本(记得启动docker)不要忘记最后的点 代表当前路径 其他路径 写相对路径
docker build -t docker-springboot:0.0.1 .
然后进入分层构建阶段 走到最后镜像就成了如下
命令行 执行 docker images 查看一下是否存在 一个 docker-springboot:0.0.1 的镜像,只要结果跟上图一样就一定存在。然后从镜像启动一个容器,命令行如下
docker run --name docker-app -p 8088:8080 docker-springboot:0.0.1
上面意思是 我前台从 docker-springboot:0.0.1 镜像启动一个名字叫docker-app的容器应用,同时将容器内部端口8080:映射到宿主机端口8088 ,这样我们可以通过本地端口8088访问容器端口8080 。我们本地浏览器访问下上面的接口 改成端口8088
大功告成。以后的时间里,我将一一讲解这一过程的细节问题。关注我,不迷路。如果你有疑问或者有更好的点子不妨在留言中进行讨论。