开发手册 欢迎您!
软件开发者资料库

Spring Boot - 创建Docker镜像

Spring Boot创建Docker镜像 - 从简单和简单的步骤学习Spring Boot,从基本到高级概念,包括简介,快速入门,引导,Tomcat部署,构建系统,代码结构,Spring Bean和依赖注入,Runners,Application Properties,记录,构建RESTful Web服务,异常处理,拦截器,Servlet过滤器,Tomcat端口号,Rest模板,文件处理,服务组件,Thymeleaf,使用RESTful Web服务,CORS支持,国际化,调度,启用HTTPS,Eureka服务器,服务注册与Eureka,Zuul代理服务器和路由,Spring云配置服务器,Spring云配置客户端,执行器,管理服务器,管理客户端,启用Swagger2,创建Docker镜像,跟踪微服务日志,Flyway数据库,发送电子邮件,Hystrix,Web套接字,批处理服务,Apache Kafka的Spring,Twilio,单元测试用例,Rest控制器单元测试,数据库处理,Secur Web应用程序,带有JWT的OAuth2,Google云平台,Google OAuth2登录。

Docker是一种容器管理服务,可以简化构建和部署.如果您是Docker的初学者,您可以通过此链接了解详细信息.  https://www.it1352.comhttps://www.tutorialspoint.com/docker/index.htm

在本章中,我们将看到如何使用Maven和Gradle依赖项为Spring Boot应用程序创建Docker镜像.

创建Dockerfile

首先,在目录 src/main/docker 下创建一个名为 Dockerfile 的文件,其内容如下所示.请注意,此文件对于创建Docker镜像非常重要.

FROM java:8VOLUME /tmpADD dockerapp-0.0.1-SNAPSHOT.jar app.jarRUN bash -c 'touch /app.jar'ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

Maven

对于Maven,添加Docker Maven插件到你的构建配置文件中 pom.xml

   spring-boot-it1352                  com.spotify         docker-maven-plugin         1.0.0                              ${docker.image.prefix}/${project.artifactId}            src/main/docker                                             ${project.build.directory}                  ${project.build.finalName}.jar                                                               org.springframework.boot         spring-boot-maven-plugin            

完整的pom.xml文件在下面和下面给出;

      4.0.0   com.it1352   dockerapp   0.0.1-SNAPSHOT   jar   dockerapp   Demo project for Spring Boot         org.springframework.boot      spring-boot-starter-parent      1.5.9.RELEASE                   UTF-8      UTF-8      1.8      spring-boot-it1352                     org.springframework.boot         spring-boot-starter-web                     org.springframework.boot         spring-boot-starter-test         test                                       com.spotify            docker-maven-plugin            1.0.0                                       ${docker.image.prefix}/${project.artifactId}               src/main/docker                                                      ${project.build.directory}                     ${project.build.finalName}.jar                                                                                    org.springframework.boot            spring-boot-maven-plugin                     

现在,您可以使用Maven命令运行您的应用程序 mvn package docker:build

MVN Package Docker Build

注意 : 在没有TLS的情况下在 tcp://localhost:2375 上启用Expose守护程序.

在构建成功后,您可以在控制台上看到输出,如下所示 :

MVN包Docker输出

现在,请参阅Docker图像命令使用docker镜像并在控制台上查看图像信息.

Docker Images Command

Gradle

要使用Gradle构建配置构建Docker镜像,我们需要添加 docker 插件并需要编写任务 buildDocker 创建一个Docker镜像.

下面给出了Gradle Docker配置的代码.

buildscript {   .....   dependencies {      .....      classpath('se.transmode.gradle:gradle-docker:1.2')   }}group = 'spring-boot-it1352'.....apply plugin: 'docker'task buildDocker(type: Docker, dependsOn: build) {   applicationName = jar.baseName   dockerfile = file('src/main/docker/Dockerfile')   doFirst {      copy {         from jar         into stageDir      }   }}

完整的build.gradle文件如下所示.

buildscript {   ext {      springBootVersion = '1.5.9.RELEASE'   }   repositories {      mavenCentral()   }   dependencies {      classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")      classpath('se.transmode.gradle:gradle-docker:1.2')   }}group = 'spring-boot-it1352'apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'org.springframework.boot'apply plugin: 'docker'group = 'com.it1352'version = '0.0.1-SNAPSHOT'sourceCompatibility = 1.8repositories {   mavenCentral()}dependencies {   compile('org.springframework.boot:spring-boot-starter-web')   testCompile('org.springframework.boot:spring-boot-starter-test')}task buildDocker(type: Docker, dependsOn: build) {   applicationName = jar.baseName   dockerfile = file('src/main/docker/Dockerfile')   doFirst {      copy {         from jar         into stageDir      }   }}

现在,使用下面显示的命令创建一个Docker镜像 :

 gradle build buildDocker


Gradle构建Docker

执行命令后,您可以在控制台窗口中看到BUILD SUCCESSFUL日志.

Docker Build Successful

现在,请查看Docker图像.命令使用 docker images 并在控制台上查看图像信息.

获取图像信息使用DockerImages