1. Introdução ao Docker
O Docker é um mecanismo de contêiner de aplicativo de código aberto que permite que os desenvolvedores empacotem seus aplicativos e dependências em um contêiner portátil e os publiquem em qualquer máquina Linux popular ou os virtualize. Os contêineres usam completamente o mecanismo de sandboxing e não haverá interface entre eles. A imagem do Docker é uma solução para executar processos de contêiner. Neste artigo, criaremos um aplicativo simples de inicialização de primavera.
2. Construção do meio ambiente
JDK 1.8+
MAVEN 3.0+
Versão mais recente do Docker.
3. Construa um projeto com maven
3.1 Crie uma estrutura de diretório
mkdir -p src/main/java/com/lidong/demonstração
Nos sistemas Linux ou Mac.
3.2 Crie um arquivo pom.xml
<? xml versão = "1.0" coding = "utf-8"?> <Projeto xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.ww3.org/2001/xmlschaMance xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion> 4.0.0 </groupversion> <proupid> com.lidongun.d.emo.emo <fodersion> 4.0.0 </groupversion> <vrougid> com.lidong.d.emo.Memo </Groupversion> <broupid> com.lidong.emoMo.emo <fodersion> </GroupDersion> <broupId> com.lidong.emo. </ArtifactId> <Versão> 1.0-SNAPSHOT </Version> </ueracer> <puriDid> org.springframework.boot </groupid> <sictifactId> Spring-Boot-Starter-Parter </ArtifactId> </Version> 1.5.1.reléase <Project.build.sourceEncoding> utf-8 </project.build.sourceEncoding> <projeto.reporting.outputencoding> utf-8 </project.reporting.outputEncoding> <Java.version> 1.8 </java.version> <docker.imiMage.Image.IXROIMIGO.IXIOMIOMIGO.IXIOMIOMIGO.IXIROMIOMIOMENT.IXIOMIOMIOMIOMENT.IMIOMIOMIOMIOMIOMIR.IXIONIOMIOMIOMIOMENT.IXIOMIOMIOMIOMIOMIOMENT.IXIOMIOMIOMIOMIR.IXIOMIOMOMIR.IXROMIOMO.IXIOMOMIRO. </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> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> </dependency> </dependency> </build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <TarfactId> Spring-boot-maven-plugin </storkactid> </plugin> <lugin> <plugiD> com.spotify </groupiD> <TRARFACTID> DOCKER-MAVEN-PLUGIN </ArtifactId> <Versão> 0.4.13 </versão <figuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <incluir> $ {Project.build.finalname} .jar </bitirPerceber:
Spring Boot Maven Plugin fornece muitos recursos convenientes:
1) Ele coleta todos os arquivos JAR no caminho de classe e se transforma em um frasco único e executável, o que torna mais conveniente executar e transferir serviços.
2) Ele procura o método público estático void main () para marcar como uma classe executável.
3) Ele fornece um analisador de dependência interno para definir o número da versão para corresponder às dependências da Spring Boot. Você pode substituir qualquer versão que desejar, mas ela vai padrão
Conjunto de versão selecionada de inicialização.
O plugin Docker-Maven-Plugin do Spotify é uma imagem do docker usada para construir o Maven
1) O nome do imageNe especifica o nome da imagem. Este exemplo é Springio/Lidong-Spring-Boot-Demo
2) DockerDirectory especifica a localização do Dockerfile
3) Recursos refere -se a arquivos que precisam ser montados com o Dockerfile e usados ao criar imagens. Geralmente, os pacotes de jar de aplicativos precisam ser incluídos.
4. Escreva o primeiro aplicativo de inicialização da primavera
Escreva um aplicativo de inicialização simples de primavera:
src/main/java/com/lidong/demonstração/sampleCecontroller.java:
pacote com.lidong.demo; importar org.springframework.boot.springApplication; importar org.springframework.boot.autoconfigure.springbootapplication; import org.springframework.steretype.controller; import.springframerwork.wrebring.wrete.controller; import.springframerwork.wretybring.wretind.Controller; org.springframework.web.bind.annotation.Responsebody;/** * @Project Nome: Lidong-dubbo * @class Nome: sampleController * @class Descrição: * @Author: chni: chni: chni: 2017/2/2/11/11111111111111111111111111111811. @Email: [email protected] */ @controlador @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"); }}
A classe é identificada pelo @springbootApplication @restcontroller e pode ser usada para lidar com solicitações da Web pelo Spring MVC.
@RequestMapping Map / to Home () e responda com "Hello Docker World".
O método Main () usa o método SpringApplication.run () da Spring Boot para iniciar o aplicativo.
5. Execute o programa
5.1 Use o comando maven
pacote mvn
correr:
Java -Jar Target/Lidong-Spring-Boot-Demo-1.0-Snapshot.jar
Visite o projeto
Se o programa executar corretamente, o navegador visitar http: // localhost: 8081/e você poderá ver as palavras "Hello Docker World". na página.
5.2 Usando o plug-in da ideia
6. Contêiner o projeto
O Docker usa o formato de arquivo do Dockerfile para especificar a camada de imagem.
Crie o arquivo SRC/Main/Docker/Dockerfile:
FROM 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 = arquivo:/dev /./ urandom -jar /pp.jar "]
Explique este arquivo de configuração:
O volume especifica o diretório de arquivos temporários AS /TMP. O efeito é criar um arquivo temporário no diretório host /var /lib /docker e vinculá -lo ao contêiner /TMP. As etapas de modificação são opcionais e for necessário se envolver a aplicação do sistema de arquivos. O diretório /tmp é usado para persistir na pasta de dados do Docker, porque o contêiner Tomcat incorporado usado pelo Spring Boot Usa /TMP como diretório de trabalho por padrão.
O arquivo JAR do projeto é adicionado ao contêiner
EntryPoint Execute Project App.Jar. Para reduzir o tempo de inicialização do Tomcat, adicione uma propriedade do sistema para apontar para "/dev/urandom" como fonte de entropia
Construa a imagem do Docker
Execute a construção para se tornar a imagem do Docker:
Docker de pacote MVN: Build
correr
Execute a imagem do Docker
Docker Run -P 8081: 8081 -T Springio/Lidong-Spring-Boot-Demo
Veja este ícone da primavera. Eu pensei que concluímos o programa de inicialização do Spring no Docker.
Em seguida, vá para o navegador e visite http: // localhost: 8081/, e você pode ver as palavras "Hello Docker World". na página.
Resumir
O exposto acima é o aplicativo de inicialização de primavera introduzido pelo editor. O aplicativo de inicialização da primavera é construído, executado e libere através do Docker. Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!