1. Introduction à Docker
Docker est un moteur de conteneur d'applications open source qui permet aux développeurs d'emballer leurs applications et de dépendances dans un conteneur portable, puis de les publier sur n'importe quelle machine Linux populaire, ou de les virtualiser. Les conteneurs utilisent complètement le mécanisme de sable et il n'y aura pas d'interface entre eux. Docker Image est une solution pour exécuter des processus conteneurisés. Dans cet article, nous créerons une simple application Spring Boot.
2. Construction de l'environnement
JDK 1.8+
Maven 3.0+
Dernière version de Docker.
3. Construisez un projet avec Maven
3.1 Créer une structure de répertoire
MKDIR -P SRC / Main / Java / Com / Lidong / Demo
Dans les systèmes Linux ou Mac.
3.2 Créer un fichier 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"> <modelversion> 4.0.0 </ ModelVersion> <proupId> com.lidong.demo </prebunId> <ArtefactId> Lidong-Spring-Boot-Demo </ Artifactid> <Dersion> 1.0-Snapshot </DERNIFRIENT> <parent> <proupId> org.springframework.boot </proupId> <Artifactid> Spring-Boot-starter-Parent </ Artifactid> </ version> 1.5.1.release </De version> <loutpathpath / </parent> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding> utf-8 </project.reportting.outputending> <java.version> 1.8 </java.version> <docker.image.prefix> </properties> <Dependces> <Dependency> <ProupId> org.springframework.boot </prôdId> <ArtifActid> printemp-boot-starter-web </ artifactid> </dependency> <dependency> <proupId> org.springframework.boot </proupId> <ArtifActid> Spring-Boot-starter-Tesst </ artifact> <ccope> test </cope> </dependency> <dependency> <proupId> org.springframework.boot </proupId> <ptefactId> printemps-boot-starter-thymeleaf </ artifactid> </dendency> </sendency> </ Dependency> </uild> </plugins> <figin> <proupId> Org.sPringFrameworkwork. <ArtefactId> Spring-Boot-Maven-Plugin </ ArfactId> </ Plugin> <Glugin> <GroupId> com.spotify </proupId> <ArtifActid> Docker-Maven-Plugin </RetifActid> <DERSE> 0.4.13 </ Version> <finiguration> <ImageName> $ {docker.image.prefix} / $ {project.artifactid} </imageName> <DockerDirectory> Src / Main / docker </ dockerDirectory> <sessources> <sesource> <TargetPath> / </ TargetPath> <Acyclitor <clut> $ {project.build.finalname} .jar </clure> </ ressource> </sessherse> </figionfing> </gingin> </glugins> </build> </rand>Avis:
Le plugin Spring Boot Maven offre de nombreuses fonctionnalités pratiques:
1) Il collecte tous les fichiers JAR sur le chemin de classe et se transforme en un seul pot à exécuter, ce qui le rend plus pratique pour exécuter et transférer des services.
2) Il recherche la méthode public void static main () pour marquer en tant que classe de course.
3) Il fournit un analyseur de dépendance intégré pour définir le numéro de version pour correspondre aux dépendances de Spring Boot. Vous pouvez remplacer toute version que vous souhaitez, mais elle sera par défaut
Ensemble de version sélectionnée du démarrage.
Le plugin Docker-Maven-Plugin de Spotify est une image Docker utilisée pour construire Maven
1) ImageName spécifie le nom de l'image. Cet exemple est Springo / Lidong-Spring-Boot-Demo
2) DockerDirectory spécifie l'emplacement du dockerfile
3) Les ressources se réfèrent aux fichiers qui doivent être assemblés avec Dockerfile et utilisés lors de la construction d'images. Généralement, les packages de bocaux d'application doivent être inclus.
4. Écrivez la première application Spring Boot
Écrivez une application de démarrage de printemps simple:
src / main / java / com / lidong / démo / sampleController.java:
package com.lidong.demo; import org.springframework.boot.springApplication; import org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.sterreotype.controller; import org.springframework.web.bind.annotation.responsebody; / ** * @project Nom: lidong-dubbo * @class Nom: SampleController * @class Description: * @Author: Lidong * @creation Time: 2017/2/19 9:34 AM * @Company: CHNI * @QQ: 1561281670 * @Email: [email protected] * / @ contrôleur @ SpringbootApplicationPublic classe SampleController {@ResponseBody @RequestMapping (value = "/") String home () {return "Hello docker world"; } public static void main (String [] args) {springApplication.run (sampleController.class, "- server.port = 8081"); }}
La classe est identifiée par @SpringBootApplication @RestController, et peut être utilisée pour gérer les demandes Web par Spring MVC.
@Requestmapping map / to home () et répondez avec "Hello Docker World".
La méthode Main () utilise la méthode SpringApplication.Run () de Spring Boot pour démarrer l'application.
5. Exécutez le programme
5.1 Utilisez la commande maven
package MVN
courir:
Java -Jar Target / Lidong-Spring-Boot-Demo-1.0-Snapshot.jar
Visiter le projet
Si le programme s'exécute correctement, le navigateur visite http: // localhost: 8081 / et vous pouvez voir les mots «Hello Docker World». sur la page.
5.2 Utilisation du plug-in d'idées
6. Conteneur Le projet
Docker utilise le format de fichier dockerfile pour spécifier la couche d'image.
Créez le fichier 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 = "" EntryPoint ["sh", "-c", "java $ java_opts -Djava.security.egd = file: / dev /./ urandom -jar /app.jar "]
Expliquez ce fichier de configuration:
Le volume spécifie le répertoire de fichiers temporaire AS / TMP. L'effet est de créer un fichier temporaire dans le répertoire hôte / var / lib / docker et de le relier au conteneur / tmp. Les étapes de modification sont facultatives, et elle est nécessaire si elle implique l'application du système de fichiers. Le répertoire / TMP est utilisé pour persister dans le dossier Docker Data, car le conteneur Tomcat intégré utilisé par Spring Boot utilise / TMP comme répertoire de travail par défaut.
Le fichier JAR du projet est ajouté au conteneur
Entrée Execute Project App.jar. Pour raccourcir l'heure de démarrage de Tomcat, ajoutez une propriété système pour pointer à "/ dev / urandom" comme source d'entropie
Construire l'image Docker
Exécutez la construction pour devenir Docker Image:
Docker du package MVN: build
courir
Exécuter l'image Docker
Docker Run -P 8081: 8081 -T Springo / Lidong-Spring-Boot-Demo
Voir cette icône du printemps. J'ai pensé que nous avions terminé le programme Spring Boot sur Docker.
Ensuite, allez au navigateur et visitez http: // localhost: 8081 /, et vous pouvez voir les mots «Hello Docker World». sur la page.
Résumer
Ce qui précède est l'application Spring Boot qui vous est présentée par l'éditeur. L'application Spring Boot est construite, s'exécute et relâche via Docker. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!