1. Introducción a Docker
Docker es un motor de contenedores de aplicaciones de código abierto que permite a los desarrolladores empaquetar sus aplicaciones y dependencias en un contenedor portátil, y luego publicarlas en cualquier máquina Linux popular o virtualizarlas. Los contenedores usan el mecanismo de sandboxing por completo y no habrá interfaz entre ellos. La imagen de Docker es una solución para ejecutar procesos contenedores. En este artículo, construiremos una aplicación simple de arranque de primavera.
2. Construcción del medio ambiente
JDK 1.8+
Maven 3.0+
Docker Última versión.
3. Construya un proyecto con Maven
3.1 Crear una estructura de directorio
mkdir -p src/main/java/com/lidong/demo
En sistemas Linux o Mac.
3.2 Crear un archivo pom.xml
<? xml versión = "1.0" encoding = "utf-8"?> <Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschemainstance" 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> <MoupRid> com.lidong.demo </groupid> <artifactid> lidong-spring-boot-demo </artifactid> <versión> 1.0-snapshot </verversion> <-parent> <proupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artactid> <version> 1.5.1.release </veression> <relative/> </propator> </stopaties> <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>springio</docker.image.prefix> </propiedades> <pendencies> <epardency> <grupid> org.springframework.boot </groupid> <artifactID> spring-boot-starter-web </artifactid> </dependency> <epardency> <proupid> org.springframework.boot </groupid> <artifactid> spring-starter-test </artid> <cope> test </scope> </pepertency> <epardency> <grupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-thymeleaf </artifactid> </dependency> </pendency> </pendency> </build> <glugins> <glugin> <grupiD> org.springFringFrame.work.work. </pendency> </built> <glugins> <glugin> <MoupRid> org.springFringFrame.Work.BoTROW.Obre. <artifactid> spring-boot-maven-plugin </arfactid> </glugin> <glugin> <grupoD> com.spotify </groupid> <artifactid> docker-maven-plugin </artifactid> <versión> 0.4.13 </versión> <figuration> <icename> $ {docker.image.prefix}/$ {Project.ArtifactId} </ imagename> <dockerDirectory> src/main/docker </dockerDirectory> <recursos> <contrato> <targetPath>/</targetPath> <Rirectory> $ {Project.Build.Directory} </directorio> <incluye> $ {Project.Build.FinalName} .JAR </include> </ recursos> </ recursos> </figuration> </glugin> </glugins> </stract> </proyecto>Aviso:
El complemento Maven de arranque de primavera proporciona muchas características convenientes:
1) Recopila todos los archivos JAR en el ClassPath y se convierte en un solo JAR ejecutable, lo que hace que sea más conveniente ejecutar y transferir servicios.
2) Busca el método Public static void main () para marcar como una clase ejecutable.
3) Proporciona un analizador de dependencia incorporado para configurar el número de versión para que coincida con las dependencias de Spring Boot. Puede anular cualquier versión que desee, pero será predeterminado
Conjunto de versión seleccionada de arranque.
El complemento Docker-Maven-Plugin de Spotify es una imagen Docker utilizada para construir Maven
1) El nombre de imagen especifica el nombre de la imagen. Este ejemplo es Springio/Lidong-Spring-Boot-Demo
2) DockerDirectory especifica la ubicación del Dockerfile
3) Los recursos se refieren a archivos que deben organizarse con Dockerfile y usarse al construir imágenes. En general, deben incluirse los paquetes JAR de aplicaciones.
4. Escribe la primera aplicación de arranque de primavera
Escribe una aplicación simple de arranque de primavera:
src/main/java/com/lidong/demo/samplecontroller.java:
paquete com.lidong.demo; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; importar org.springframework.stereotype.controller; import og.springframework.webind.bind.notatation org.springframework.web.bind.annotation.ResponseBody;/** * @Project Nombre: Lidong-dubbo * @class Nombre: muestlecontroller * @class Descripción: * @Author: Lidong * @Creation Time: 2017/2/19 9:34 am * @Company: Chni * @qq: 1561281281670 * @Email: [email protected] */ @controlador @springbootapplicationPublic clase samplecontroller {@ResponseBody @RequestMapping (valor = "/") String home () {return "Hello Docker World"; } public static void main (string [] args) {springapplication.run (samplecontroller.class, "-server.port = 8081"); }}
La clase es identificada por @SpringBootApplication @RestController, y puede usarse para manejar las solicitudes web por Spring MVC.
@RequestMapping Map / To Home () y responde con "Hello Docker World".
El método Main () utiliza el método SpringAplication.run () de Spring Boot para iniciar la aplicación.
5. Ejecute el programa
5.1 Use el comando maven
paquete MVN
correr:
Java -jar Target/Lidong-Spring-Boot-Demo-1.0-Snapshot.jar
Visite el proyecto
Si el programa se ejecuta correctamente, el navegador visita http: // localhost: 8081/y puede ver las palabras "Hola Docker World". en la página.
5.2 Uso del complemento de ideas
6. Contenedor el proyecto
Docker usa el formato de archivo DockerFile para especificar la capa de imagen.
Crea el archivo src/main/docker/dockerfile:
De frolvlad /alpine-oraclejdk8: slimvolume /tmpadd lidong-spring-boot-demo-1.0-snapshot.jar app.Jarrun sh -c 'touch /app.jar'env java_opts = "" Entrada ["sh", "-c", "java $ java_optss -Djava.security.egd = file:/dev /./ urandom -jar /app.jar "]
Explique este archivo de configuración:
El volumen especifica el directorio de archivos temporal como /tmp. El efecto es crear un archivo temporal en el directorio host /var /lib /docker y vincularlo al contenedor /tmp. Los pasos de modificación son opcionales, y es necesario si implica la aplicación del sistema de archivos. El directorio /TMP se usa para persistir en la carpeta de datos de Docker, porque el contenedor Tomcat integrado utilizado por Spring Boot usa /TMP como el directorio de trabajo de forma predeterminada.
El archivo jar del proyecto se agrega al contenedor
EntryPoint Ejecutar Project App.jar. Para acortar el tiempo de inicio de Tomcat, agregue una propiedad del sistema para señalar "/dev/urandom" como fuente de entropía
Imagen de Docker de construcción
Ejecute la compilación para convertirse en Docker Image:
Docker de paquete MVN: construir
correr
Ejecutar la imagen de Docker
Docker Run -P 8081: 8081 -T Springio/Lidong-Spring-Boot-Demo
Ver este ícono de primavera. Pensé que hemos completado el programa Spring Boot en Docker.
A continuación, vaya al navegador y visite http: // localhost: 8081/, y puede ver las palabras "Hola mundo de Docker". en la página.
Resumir
Lo anterior es la aplicación Spring Boot presentada por el editor. La aplicación Spring Boot está construida, se ejecuta y se lanza a través de Docker. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!