转载

容器化你的 Spring Boot 工程——Docker 原 荐

杨彬Lennon的个人空间 工作日志

正文

容器化你的 Spring Boot 工程——Docker

容器化你的 Spring Boot 工程——Docker 原 荐
  杨彬Lennon 发布于 今天 16:10

字数 498

阅读 4

收藏 0

Docker Spring Spring Boot Deploy

挑战A.I.,赢百万奖金......了解更多详情>>> 容器化你的 Spring Boot 工程——Docker 原 荐

环境声明:

Gradle + Docker + Spring Boot 2.1.5.RELEASE

目的

利用docker容器技术简化项目部署

配置Docker服务(Ubuntu)

安装

    apt-get install docker-ce

修改源

    vim /etc/docker/daemon.json
    {
       "registry-mirrors": [
          "https://kv3qfp85.mirror.aliyuncs.com"
        ]
    }

开放远程 2375 端口访问

  • 修改docker配置文件

vim /lib/systemd/system/docker.service

    修改如下内容

    #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
  • 重载配置和重启
systemctl daemon-reload

    sudo service docker restart
  • 查看服务

容器化你的 Spring Boot 工程——Docker 原 荐

开发环境配置

idea连接远程Docker

容器化你的 Spring Boot 工程——Docker 原 荐

构建镜像

  • gradle配置,增加 gradle 的 Docker 插件
parent build.gradle
......

buildscript {

    ......

    dependencies {

        ......

        classpath('gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.19.2')
    }
}

......

subprojects {

    ......
    
    apply plugin: 'application'
    apply plugin: 'com.palantir.docker'

    ......

    jar {
        enabled = true
    }
    bootJar {
        classifier = 'boot'
    }
}
  • 编写Dockerfile
FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ADD build/libs/*-boot.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" ]
  • 构建可运行jar包,打好的包在build-libs目录内*-boot.jar

容器化你的 Spring Boot 工程——Docker 原 荐

为了方便查看(当然不这样做也是可以的),假设我的项目是多模块架构,项目名为 demo,现在为我的子模块model1构建和部署镜像

容器化你的 Spring Boot 工程——Docker 原 荐

容器化你的 Spring Boot 工程——Docker 原 荐

最下边Command preview也就是原生的Docker构建镜像的命令:

docker build -t demo/model1:v1 . && docker run -p 8061:8061 --name demo-model1-container demo/model1:v1

run it (莫慌,骚微一等)

容器化你的 Spring Boot 工程——Docker 原 荐

Deploy log:

Deploying 'demo-model1-container Dockerfile: model1/Dockerfile'...
Building image...
Step 1/6 : FROM openjdk:8-jdk-alpine
 ---> a3562aa0b991
Step 2/6 : VOLUME /tmp
 ---> Using cache
 ---> 0ccc6c4dcc3f
Step 3/6 : ADD build/libs/*-boot.jar app.jar
 ---> Using cache
 ---> 999503a5bf26
Step 4/6 : RUN sh -c 'touch /app.jar'
 ---> Using cache
 ---> d99dd527cb5b
Step 5/6 : ENV JAVA_OPTS=""
 ---> Using cache
 ---> 468e80ce7f62
Step 6/6 : ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
 ---> Using cache
 ---> d8d32a964e71
Successfully built d8d32a964e71

Successfully tagged demo/model1:v1

Creating container...
Container Id: 0f91b3f38e771cb1288fb7b01451aeeef917d83f4f2fbe803a65a091684a7430
Container name: 'demo-model1-container'
Attaching to container 'demo-model1-container'...
Starting container 'demo-model1-container'
Failed to deploy 'demo-model1-container Dockerfile: data-collect-server/Dockerfile': com.github.dockerjava.api.exception.InternalServerErrorException: {"message":"driver failed programming external connectivity on endpoint demo-model1-container (10fcfb5d05feffb40b75715b531c7504a8ee7262c2af43b642d2202e9e3f4b31): Bind for 0.0.0.0:8061 failed: port is already allocated"}

容器化你的 Spring Boot 工程——Docker 原 荐

启动成功,访问测试

容器化你的 Spring Boot 工程——Docker 原 荐

容器化你的 Spring Boot 工程——Docker 原 荐

示例项目: gradle-docker

© 著作权归作者所有

打印

上一篇: JVM内存模型——JAVA的根基

下一篇: 造个小轮子——实体类和JPA接口的逆向生成(基于Groovy)

容器化你的 Spring Boot 工程——Docker 原 荐

杨彬Lennon

粉丝 7

博文 9

码字总数 15578

作品 0

昌平

程序员

提问

加载中

评论( 1 )

容器化你的 Spring Boot 工程——Docker 原 荐
欢乐斗楼主

53分钟前

学习了

删除一条评论

评论删除后,数据将无法恢复

取消

确定

相关文章 最新文章

spring-boot项目的docker集成化部署(二)--springboot的mysql项目

spring-boot项目的docker集成化部署(二)--springboot的mysql项目 [toc] 补充使用maven构建操作流程 1、配置基本的环境 全局工具配置—配置Java、maven、git基本工具(注意:按照自己的路径...

weir_will

03/25

0

0

容器化你的 Spring Boot 工程——Docker 原 荐
Spring boot在Docker中以JPA方式连接Mysql

背景 最近在了解Docker的使用,发现docker在集群部署方面和运维方面有比较大的优势,通过统一的依赖关系,以镜像的方式,将已经打好包的镜像文件,部署到各个节点。如果不用考虑集群的同学,...

亚林瓜子

2018/11/09

0

0

Spring Boot 应用监控:Actuator与 Admin

第 III 部分Spring Boot 系统监控、测试与运维 Spring Boot 应用监控:Actuator与 Admin 《Spring Boot 实战开发》(陈光剑) —— 基于 Gradle + Kotlin的企业级应用开发最佳实践 在企业级应用...

程序员诗人

2018/04/17

0

0

使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署

对于本教程,您将拥有一个Docker化Spring-Boot实例程序,该应用程序与MongoDB通信以获取GET/POST API请求,并部署在Kubernetes集群中。 前提条件 Minikube Kubectl Docker Maven Docker是一个...

Docker

01/11

0

0

容器化你的 Spring Boot 工程——Docker 原 荐
在Docker容器中部署Spring Boot应用

Docker是开发者的开放平台,它是一个机制,通过将每个应用程序打包到容器中来隔离依赖关系。容器是可扩展的,可更安全的使用和部署。Docker容器能够共享一个内核并共享应用程序库,因此容器比...

RaiseHead

2018/05/30

0

0

没有更多内容

加载失败,请刷新页面

加载更多
视觉化呈现数据,MatPlotLib是怎么大显身手的?

全文共6661字,预计学习时长20分钟或更长 图片来源:pexels.com/@divinetechygirl 在现代数字世界中,数据就像空气一样重要。 人们每天都会自觉或不自觉地消费和产生大量数据。近来,许多商家...

读芯术

36分钟前

3

0

容器化你的 Spring Boot 工程——Docker 原 荐
js byte数据转16进制

console.info(Bytes2Str([16,66,108,-27,2,-108])) function Bytes2Str(arrBytes){var str = "";for (var i = 0; i < arrBytes.length; i++) {var tmp;var num = arrBytes[i]......

Cyoya

37分钟前

2

0

前端js 生成的base64位图片在后端 java 解析

// 1.需要引入的包 import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ......

kuchawyz

38分钟前

2

0

solr 同步 mysql

一、首先创建一个数据库和表 这里创建了一个表,加上了测试数据,注意这里有一个字段来记录更新时间 update_date 二、修改配置文件 我们首先介绍全量同步,再介绍增量同步 我的 solr 版本是 ...

嘴角轻扬30

40分钟前

2

0

elementUI自定义 排序

sortChangeFn({ column, prop, order }){ if(order == "ascending"){ this.sortNum=1; }else if(order == "descending"){ this.sortNum=2; }else{......

mubail

43分钟前

2

0

没有更多内容

加载失败,请刷新页面

加载更多
原文  https://my.oschina.net/zbnb/blog/3078454
正文到此结束
Loading...