一、新建Maven工程,Pom.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>Docker</artifactId><groupId>com.tonels</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dockerDemo1</artifactId><dependencies><dependency><groupId>com.tonels</groupId><artifactId>common</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>2.0.8.RELEASE</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins><finalName>docker-spring-boot</finalName></build></project>

二、项目结构,没有很复杂

三、代码展示

3.1 DkController

package dockerDemo1.controller;import com.google.common.collect.Lists;
import dockerDemo1.model.Book;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/")
public class DkController {private static List<Book> books = null;static {Book b1 = new Book().setId("1").setName("霍乱").setAuthor("马尔克斯").setPrice("12");Book b2 = new Book().setId("2").setName("百年孤独").setAuthor("马尔克斯").setPrice("12");Book b3 = new Book().setId("3").setName("少年闰土").setAuthor("鲁迅").setPrice("12");Book b4 = new Book().setId("4").setName("三味书屋").setAuthor("鲁迅").setPrice("12");books=  Lists.newArrayList(b1,b2,b3,b4);}@GetMapping("/book")public Book test(){Book book = new Book().setId("1").setName("霍乱").setAuthor("马尔克斯").setPrice("12");//        Map<String, String> pojoToMap = Splitter.on(",").withKeyValueSeparator(":").split(JSONUtil.toJsonStr(book));
//        JSONUtil.return book;}@GetMapping("/list")public List<Book> testAll(){return books;}}

3.2 Book

package dockerDemo1.model;import lombok.Data;
import lombok.experimental.Accessors;@Data
@Accessors(chain = true)
public class Book {private String id;private String name;private String author;private String price;}

3.3 DkDemo1

package dockerDemo1;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DkDemo1 {public static void main(String[] args) {SpringApplication.run(DkDemo1.class);}}

3.4 application.yml

server:port: 8085

项目没有很复杂,相信大家都能很轻松的搭出来,打好之后,本地 run 一下,请求

localhost:8085/book

或者

localhost:8085/list

是有相应的数据返回的,这一步已经完成本博文的80%了,其实Docker就是一个项目构建工具,就是实现基于项目的快速部署,上线,因此,项目完成后,就已经完成80%了,后面需要加强学习Docker的就是关于快速的问题了。

四、Docker 部署,我是用本地Windows安装,操作使用的Docker,这里是windows 版docker的使用说明。

4.1 新建dockerfile ,在这个目录下


文件内容如下

FROM openjdk:8ADD target/docker-spring-boot.jar docker-spring-boot.jarENTRYPOINT ["java","-jar","docker-spring-boot.jar"]EXPOSE 8085

可以看出,这里有个Jar,就是我们之前的项目用IDEA的Maven插件打包,将打包成这个包名

4.2 打包

4.Docker build,进入IDEA的终端命令行下,执行

docker build  -t springbootdocker1 dockerDemo1

注意,这个命令包含,两个文件名,一个是Jar包名,一个是项目名,执行成功可以看到,其实Docker build 是按之前我们定义的dockerfile,四条命令,批次执行的

4.1 docker images,可看到镜像已生成

4.2 docker run ,后台运行 -itd

docker run  -itd -p 8085:8085 springbootdocker1

本地访问

localhost:8085/book

或者

localhost:8085/list

可看到有数据返回,容器正在成功运行

4.3 docker push,可推到Docker Hub的远程库

因为有些操作,和上一篇类似,这里我就省略了。。。

4.3 docker push,可推到Docker Hub的远程库

4.4 远程测试,我用自己的阿里Linux服务器,只装了 docker,甚至连JDK都没有装

但我试着 pull 一下,这个项目

docker pull tonels/springbootdocker1

然后运行,

docker run -p 8085:8085 tonels/springbootdocker1

浏览器,输入http://111.231.71.139:8085/list,可看到项目已部署,这个Ip是我阿里云服务器的地址,可以看到Dokcer是真的运行在自己的容器里的,一点都不依赖外部Linux的环境,唯一依赖的就是Docker是安装在Linux上的。。

[
{
"id": "1",
"name": "霍乱",
"author": "马尔克斯",
"price": "12"
},
{
"id": "2",
"name": "百年孤独",
"author": "马尔克斯",
"price": "12"
},
{
"id": "3",
"name": "少年闰土",
"author": "鲁迅",
"price": "12"
},
{
"id": "4",
"name": "三味书屋",
"author": "鲁迅",
"price": "12"
}
]

上一篇,这里有更详细的操作

下一篇,补充一下,关于进入Docker容器,查看我们运行具体的镜像,容器信息

ggggggrtr

IDEA Springboot docker 构建项目相关推荐

  1. SpringBoot快速构建项目

    我们再来看一下SpringBoot的快速构建项目,我们都是在集成的IDEA当中,创建一个maven project,在maven project的pom文件里呢,我们再去加SpringBoot相关的坐 ...

  2. jenkin+docker 构建项目

    jenkins发布项目 在构建项目之前我们需要做一些配置,安装一些插件 点击系统管理 点击插件管理 需要安装一下这个maven插件 插件安装完成之后我们需要配置一下全局工具 "系统管理> ...

  3. docker简单介绍、安装使用、常用命令、docker构建springboot项目、k8s安装

    docker简单介绍 docker的意义 把事情简单化 Docker友好的基于CLI的工作流使各种技能水平的开发人员都可以访问构建,共享和运行容器化应用程序. 快速移动 从单个软件包安装即可在几分钟内 ...

  4. docker部署springboot_Docker+SpringBoot快速构建和部署应用

    前言 Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情.当前,前提是得有Docker的基础. 构建一个Spr ...

  5. docker部署项目 dockerfile 实战 SpringBoot、flask

    1 SpringBoot微服务打包Docker镜像 1.1 构建springboot项目 package com.example.springboot.demo;import org.springfr ...

  6. 项目是采用目前比较流行的 SpringBoot/SpringCloudAlibaba构建新零售微服务电商项目

    简介: 技术架构 项目是采用目前比较流行的 SpringBoot/SpringCloudAlibaba构建新零售微服务电商项目,从项目中台架构技术选型.模块设计.基础设施的构建.分布式解决方 案.互联 ...

  7. Docker Compose配置springboot微服务项目

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  8. docker build 变量_Docker从入门到掉坑(二):基于Docker构建SpringBoot微服务

    在之前的文章里面介绍了如何基于docker容器部署一些常见的基础环境,例如MySQL.Redis这些,那么这篇文章里面我会介绍一些关于SpringBoot如何打包运行到docker容器中. 先介绍一下 ...

  9. 使用Dockerfile为SpringBoot应用构建Docker镜像

    使用Dockerfile为SpringBoot应用构建Docker镜像 原创: 梦想de星空 macrozheng 6月17日 上次写过一篇使用Maven插件构建Docker镜像 ,讲述了通过dock ...

  10. 项目如何用jetty运行_阿里大牛教你如何用Dubbox+SpringBoot+Docker架构,实现双11项目...

    前言 本篇围绕秒杀抢购应用场景,对当下流行的Dubbox+ Spring Boot+Docker微服务架构解决方案进行讲解.主要内容包括微服务架构介绍.Dubbox 原理及运用.使用Spring Bo ...

最新文章

  1. c# 逆转数组元素的排序
  2. C#检测电脑的一些设置通用类(经典推荐)
  3. 源代码从 300 行到 172,000 行,它用了 23 年
  4. Springmvc+Easyui 搜索,新增,删除,修改
  5. knn闽南语是什么意思_小丑竟是我自己是什么意思梗 小丑竟是我自己bgm是什么...
  6. 「新闻」Google Science Fair
  7. 基于Go语言构建区块链:part5
  8. Flutter中Expanded组件不能直接嵌套LitView报错,解决办法
  9. zabbix3 mysql8.0_Zabbix3的离线安装
  10. 妨碍编译器优化的因素
  11. MySQL函数大全及用法
  12. 中标麒麟服务器中安装达梦数据库(DM7)的具体步骤
  13. acm中c语言标准输入输出,ACM竞赛之输入输出
  14. 阻止浏览器冒泡和默认行为
  15. html5拼图游戏canvas,canvas拼图游戏
  16. 苹果推出iPhone 12维修计划,解决无声音问题
  17. 知识图谱入门学习笔记(二)-知识表示
  18. Iptables 指南 1.1.19(中文版)(三)
  19. 他说:“程序员是出轨率最高群体”,然后就被解约了...
  20. Java里模糊查询的英文_MyBatis实现模糊查询的几种方式

热门文章

  1. 抢票助手-for 12306买火车票.订票助手.高铁.动车.春运.车票管家.自动刷票.列车时刻表
  2. 消息队列之Kafka从入门到小牛
  3. 如何制作多链接二维码?一次性防伪二维码?
  4. Windows环境下使用UHD PythonAPI开发USRP X310
  5. asp/php/asp.net网站后台HTML编辑器eWebEditor升级kindeditor编辑器
  6. 通过TCP网络协议实现控制台多人聊天功能,另附私聊@功能。(java)
  7. img标签图片自适应的样式
  8. 06_XML的写入_dom4j添加、删除、修改Xml文件内容
  9. pytorch的两个函数 .detach() .detach_() 的作用和区别
  10. ajax怎么会突然出现401,当jquery ajax遇上401请求