一、什么是docker ?

简介

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

docker的应用场景

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

二、整合 docker

创建工程

创建一个springboot工程springboot-docker

1. 启动类

package com.gf;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@SpringBootApplication
@RestController
public class SpringbootDockerApplication {public static void main(String[] args) {SpringApplication.run(SpringbootDockerApplication.class, args);}@GetMapping("/{name}")public String hi(@PathVariable(value = "name") String name) {return "hi , " + name;}}

2. 将springboot工程容器化

我们编写一个Dockerfile来定制镜像,在src/main/resources/docker 下创建Dockerfile文件

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

3. pom.xml

我们通过maven 构建docker镜像。
在maven的pom目录,加上docker镜像构建的插件

<?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"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.gf</groupId><artifactId>springboot-docker</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>springboot-docker</name><description>Demo project for Spring Boot</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><docker.image.prefix>gf</docker.image.prefix></properties><dependencies><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><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.0</version><configuration><imageName>${docker.image.prefix}/${project.artifactId}</imageName><dockerDirectory>src/main/resources/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin></plugins></build></project>

构建镜像

我们运行下面的命令构建镜像:

mvn clean
mvn package docker:bulid

构建成功后,我们通过下面的命令查看镜像:

docker images

启动镜像:

#c2dba352c3c1 为镜像ID
docker run -p 8080:8080 -t c2dba352c3c1

之后我们就可以访问服务了。

源码下载:https://github.com/gf-huanchupk/SpringBootLearning

欢迎扫码或微信搜索公众号《程序员果果》关注我,关注有惊喜~

转载于:https://www.cnblogs.com/huanchupkblog/p/10563849.html

Spring Boot 整合 docker相关推荐

  1. java 模板引擎_极简 Spring Boot 整合 Thymeleaf 页面模板

    点击"牧码小子"关注,和众多大牛一起成长! 关注后,后台回复 java ,领取松哥为你精心准备的技术干货! 虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在 ...

  2. spring boot 整合Dubbo/Zookeeper

    spring boot 整合Dubbo/Zookeeper 只是一个简单的整合demo,只做思路分析叙述,具体功能不做描述. 一.技术介绍 •ZooKeeper ZooKeeper 是一个分布式的,开 ...

  3. spring boot整合RabbitMQ —— 十分钟急速上手

    安装运行rabbitmq 1.docker安装rabbitmq: docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq ...

  4. 【任务篇】Spring Boot 整合 XXL-JOB 实现定时任务

    写在最前 之前介绍过[任务篇]Spring Boot 内置定时任务 Spring Task 实现定时任务,这次介绍 XXL-JOB 实现定时任务. XXL-JOB XXL-JOB 是一个分布式任务调度 ...

  5. Spring Boot整合elasticsearch实现全文检索

    文章目录 1.引入 1.1 Luence 1.2 Solr 1.3 ElasticSearch 2. ElasticSearch安装 2.1 云服务器安装 2.1.1. docker安装 2.1.2 ...

  6. spring boot整合spring security笔记

    最近自己做了一个小项目,正在进行springboot和spring Security的整合,有一丢丢的感悟,在这里分享一下: 首先,spring boot整合spring security最好是使用T ...

  7. RabbitMQ使用及与spring boot整合

    1.MQ 消息队列(Message Queue,简称MQ)--应用程序和应用程序之间的通信方法 应用:不同进程Process/线程Thread之间通信 比较流行的中间件: ActiveMQ Rabbi ...

  8. Spring Boot 教程(三): Spring Boot 整合Mybatis

    教程简介 本项目内容为Spring Boot教程样例.目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中.如您觉得该项目对您有用,欢迎点击收藏和点赞按钮, ...

  9. 五、spring boot整合mybatis-plus

    spring boot整合mybatis-plus 简介 mybatis 增强工具包,简化 CRUD 操作. 文档 http://mp.baomidou.com http://mybatis.plus ...

最新文章

  1. python random模块中的指令_10分钟让你掌握python编程中random模块功能使用,非常详细...
  2. k8s 查看ip地址属于哪个pod_一个简单的例子理解Kubernetes的三种IP地址类型
  3. react的导出是怎么实现的_从零开始开发一个 React
  4. cello 有关状态
  5. python课程第三周小结_python周报第三周
  6. 计算机 360云盘删除,删除360云盘图标,教你win7系统删除360云盘图标教程
  7. kotlin 使用viewStub
  8. 英雄联盟闪退显示无法连接服务器,英雄联盟一直闪退显示重新连接什么原因?lol崩溃进不去游戏怎么办...
  9. 华为机试题202205
  10. 产品必备技能(十):如何绘制原型图?先要绘制页面流程图+页面原型图!附实操原型图、流程图实例(抖音)
  11. 【MATLAB】基本绘图 ( Marker 设置 | 设置 Marker 边框 | 设置 Marker 填充 )
  12. 22 mysql有那些”饮鸩止渴”提高性能的方法?
  13. 从零开始写第一个Android应用程序
  14. discuzapi插件_discuz 代码api
  15. java dozer_java – Dozer双向映射(String,String)与自定义转换器不可能?
  16. 查看oracle数据库(database)的版本命令
  17. 瑞星个人防火墙2008正式版 官方安装包
  18. Android 语音播放Media Player
  19. 花房集团:直播老将终赴IPO
  20. adobe bridge cs6怎么卸载_adobe bridge cs6 64_adobe bridge cs6安装_adobe bridge可以删吗

热门文章

  1. 895计算机专业基础,2017北京工业大学895计算机学科专业基础考研入学考试大纲...
  2. oracle字段怎么写,oracle修改字段名的语句怎么写_数据库,oracle,字段名
  3. sql 替换字符串函数_你有一份Excel文本函数大全,请注意查收(下)
  4. kafka学习_kafka学习(第一章 初识kafka)
  5. getset原子性 redis_RedisAPI原子性操作及原理解析
  6. java有几大对象_一个 Java 对象到底有多大?
  7. excel制作录入和查询系统_Excel进销存管理系统,完整函数应用,出入查询库存更新自动显示...
  8. OpenCV-Python实战(21)——OpenCV人脸检测项目在Web端的部署
  9. c memcpy 同内存_C / C ++ memcpy()–跨内存位置复制
  10. nginx 配置示例_Nginx位置指令示例