docker部署springboot(windows版本)

jdk1.8java

maven3web

docker https://www.docker.com/products/docker-toolboxspring

先新建一個springboot項目,一個最簡單的請求docker

在項目mian下新建docker目錄,在docker下新建Dockerfile文件apache

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD test-0.0.1.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" ]

解釋下這個配置文件:tomcat

  • VOLUME 指定了臨時文件目錄爲/tmp。其效果是在主機 /var/lib/docker 目錄下建立了一個臨時文件,並連接到容器的/tmp。改步驟是可選的,若是涉及到文件系統的應用就頗有必要了。/tmp目錄用來持久化到 Docker 數據文件夾,由於 Spring Boot 使用的內嵌 Tomcat 容器默認使用/tmp做爲工做目錄
  • 項目的 jar 文件做爲 "app.jar" 添加到容器的
  • ENTRYPOINT 執行項目 app.jar。爲了縮短 Tomcat 啓動時間,添加一個系統屬性指向 "/dev/urandom" 做爲 Entropy Source

pom中增長maven-docker-pluginspringboot

<properties>
   <docker.image.prefix>springio</docker.image.prefix>
</properties>
<plugin>
   <groupId>com.spotify</groupId>
   <artifactId>docker-maven-plugin</artifactId>
   <version>0.4.13</version>
   <configuration>
      <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
      <dockerDirectory>src/main/docker</dockerDirectory>
      <resources>
         <resource>
            <targetPath>/</targetPath>
            <directory>${project.build.directory}</directory>
            <include>${project.build.finalName}.jar</include>
         </resource>
      </resources>
   </configuration>
</plugin>

打開docker客戶端,進入項目根目錄服務器

打包jar,oracle

$ mvn clean package

而後執行docker打包鏡像命令app

$ mvn clean package docker:build

打包成功,查看鏡像

運行鏡像

$ docker run -p 8080:8080 -t springio/test

而後訪問web請求   192.168.99.100:8080/get

docker服務器默認地址192.168.99.100

鏡像運行成功!

相關文章
相關標籤/搜索