廢話(huà)不多說(shuō)咱圆,直接開(kāi)始步驟:
- 創(chuàng)建springboot應(yīng)用盯孙,這個(gè)我就不寫(xiě)了卦羡,大概有幾種方法:
1噪馏、采用Spring.io
2麦到、采用mvn archetype:generate.....方式
- 創(chuàng)建好應(yīng)用后,重點(diǎn)是pom文件欠肾,采用maven方式來(lái)打鏡像瓶颠,所以pom.xml中需要加入如下信息:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${project.artifactId}</imageName>
<dockerDirectory>./</dockerDirectory>
</configuration>
</plugin>
解釋下dockerDirectory就是Dockerfile的路徑地址。你即將要寫(xiě)Dockerfile文件了刺桃。
開(kāi)始寫(xiě)Dockerfile文件
FROM openjdk:8-jdk-alpine
VOLUME /temp
EXPOSE 8889
ARG JAR_FILE=target/webflux-sample-1.0-SNAPSHOT.jar
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","app.jar"]
解釋下:
from 是鏡像基礎(chǔ)
volumn是定一個(gè)文件持久化目錄
expose 暴露出8889端口粹淋,在啟動(dòng)的時(shí)候,只要直接-P就行了瑟慈,這個(gè)是大寫(xiě)的P桃移。
ARG是定義變量,下面會(huì)用到葛碧。
ADD開(kāi)始復(fù)制文件到容器中借杰,注意和COPY的區(qū)別,不需要寫(xiě)路徑的进泼。
ENTRYPOINT是容器啟動(dòng)的時(shí)候執(zhí)行命令蔗衡。
所以,很簡(jiǎn)單乳绕,一個(gè)標(biāo)準(zhǔn)的springboot的鏡像Dockerfile就這么寫(xiě)好了绞惦。存放在項(xiàng)目的根目錄下。
-
執(zhí)行mvn clean package docker:build命令洋措,可以直接看到執(zhí)行的結(jié)果:
Screen Shot 2018-12-08 at 10.50.19 AM.png
那么鏡像基本就打好了在本地济蝉。通過(guò)命令來(lái)看下:
看到第一個(gè)鏡像了么,就是本地鏡像了菠发。
-
好了堆生,最后一步,啟動(dòng)鏡像:
Screen Shot 2018-12-08 at 10.54.01 AM.png
啟動(dòng)成功了雷酪,通過(guò)本機(jī)瀏覽器訪(fǎng)問(wèn):localhost:8889/demo即能看到“hello world!”
至于docker 的啟動(dòng)命令淑仆,大家自己去熟悉。
后面有時(shí)間再給大家分享下docker-compose和k8s相關(guān)哥力。