一,準(zhǔn)備工作:
1,去docker官網(wǎng)下載windows版的docker安裝包逢享,下載地址:https://docs.docker.com/docker-for-windows/install/鞭盟,下載完成后運行Docker Desktop Installer.exe文件,按界面上的提示完成安裝即可叠赐,安裝完成后啟動docker服務(wù)。
2对妄,修改項目的pom.xml文件
在項目的pom.xml文件中增加以下配置或依賴:
<properties>
<java.version>1.8</java.version>
? <docker.image.prefix>springio</docker.image.prefix>
</properties>
<repositories>
<repository>
? ? ? <id>alimaven</id>
? ? ? <name>aliyun maven</name>
? ? ? <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<!--maven docker插件-->
<plugin>
? <groupId>com.spotify</groupId>
? <artifactId>docker-maven-plugin</artifactId>
? <version>0.4.14</version>
<configuration>
? ? ? <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
? ? ? <!--指定docker鏡像的版本號-->
? ? ?<imageTags>
? ? ? ? <!--使用maven項目的版本號-->
? ? ? ? <imageTag>${project.version}</imageTag>
? ? ? ? <imageTag>latest</imageTag>
? ? ? ?</imageTags>
? ? ? <!--Dockerfile文件位置-->
? ? ? <dockerDirectory>src/main/docker</dockerDirectory>
? ?<resources>
? ??<resource>
? ? ? ? ? ? <targetPath>/</targetPath>
? ? ? ? ? ? <!--用于指定需要復(fù)制的目錄-->
? ? ? ? ? ? <directory>${project.build.directory}</directory>
? ? ? ? ? ? <!--用于指定需要復(fù)制的文件-->
? ? ? ? ? ? <include>${project.build.finalName}.jar</include>
? ? ? ? ?</resource>
? ? ?</resources>
? ? </configuration>
</plugin>
<plugin>
? <groupId>org.springframework.boot</groupId>
? <artifactId>spring-boot-maven-plugin</artifactId>
? <!--加入下面兩項配置-->
?<executions>
? ??<execution>
? ? ??<goals>
? ? ? ? ? ? <goal>repackage</goal>
? ? ? ?</goals>
</execution>
</executions>
<configuration>
? ? ? <includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
3河绽,在項目的源文件中新建Dockerfile文件己单,Dockerfile文件的配置如下:
#基于哪個鏡像
FROM java:8
#將本地文件夾掛載到當(dāng)前容器
VOLUME /tmp
#復(fù)制文件到容器
ADD gold-recycle-service.jar app.jar
#聲明需要暴露的端口
EXPOSE 8086
#配置容器啟動后執(zhí)行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
二,開始構(gòu)建
在完成了以上準(zhǔn)備工作后耙饰,在springboot?終端上依次輸入以下命令來完成鏡像的創(chuàng)建與啟動纹笼。
1,mvn clean package -e docker:build? ? ? 創(chuàng)建docker鏡像
2苟跪,docker ps -a?查看所有鏡像廷痘,可以看到剛剛構(gòu)建好的鏡像
3,docker run --name goldService -p 8086:8086 -d springio/gold-recycle-service:0.0.1-SNAPSHOT? ? --name:指定新鏡像名稱削咆,-d:后臺運行牍疏,-p:指定映射的端口,此處是將項目的8086端口映射成http端口8086 拨齐, springio/gold-recycle-service:0.0.1-SNAPSHOT:鏡像名鳞陨。
三,驗證
當(dāng)完成以上兩步后相當(dāng)于項目服務(wù)已在本地發(fā)布瞻惋,可以在瀏覽器中輸入http://localhost:8086/接口地址厦滤,? 來驗證。如果有數(shù)據(jù)返回成功歼狼,即表示本地的docker鏡像構(gòu)建是成功的掏导。