Spring Boot学习笔记三
Spring Boot与Docker
一、Docker简介
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。官方定位:an open platform to build, ship, and run any app, anywhere.
Docker支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。
二、核心概念
docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上);
docker客户端(Client):连接docker主机进行操作;
docker仓库(Registry):用来保存各种打包好的软件镜像;
docker镜像(Images):软件打包好的镜像;放在docker仓库中;
docker容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用
三、关于跨平台
docker适用于Linux平台(仅适用),但是又能在windows和OS X mac等系统上安装,其实docker并没有跨平台,它运行依赖Linux内核,在OS X和windows运行docker会先产生一个Linux虚拟机。至于
所谓的跨平台,其实添加了一层间接,如java,运行在不同的os中的jvm上,而不是直接在os里运行。现在win和mac都可以体验docker了,可以装来玩玩,写dockerfile才是docker的重点。
四、Doucker安装
首先安装虚拟机(VMWare、VirtualBox),建议安装VirtualBox。然后安装liunx系统(虚拟机及liunx系统安装在此不做赘述),最后安装doucker。
Doucker安装步骤:

五、两者关系
使用Docker可以快速部署Spring boot项目,解决多应用部署的问题。下面演示一个小实例
5.1项目代码
package com.eangulee.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
@RequestMapping("/")
@ResponseBody
public String hello() {
return "Hello, SpringBoot With Docker";
}
}
5.2将springboot项目打包为jar包
5.3编写Dockerfile文件
# 基础镜像使用java FROM java:8 # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中并更名为app.jar ADD demo-0.0.1-SNAPSHOT.jar app.jar # 运行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
5.4部署文件
在服务器新建一个docker文件夹,将maven打包好的jar包和Dockerfile文件复制到服务器的docker文件夹下

5.5制作镜像

5.6启动容器

5.7访问网页


浙公网安备 33010602011771号