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访问网页

    

 

 

 

  

 

  

 

posted @ 2020-11-08 11:44  Eva!  阅读(80)  评论(0)    收藏  举报