废话不多说,直接开始步骤:
- 创建springboot应用,这个我就不写了,大概有几种方法:
1、采用Spring.io
2、采用mvn archetype:generate.....方式
- 创建好应用后,重点是pom文件,采用maven方式来打镜像,所以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的路径地址。你即将要写Dockerfile文件了。
-
开始写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 是镜像基础
volumn是定一个文件持久化目录
expose 暴露出8889端口,在启动的时候,只要直接-P就行了,这个是大写的P。
ARG是定义变量,下面会用到。
ADD开始复制文件到容器中,注意和COPY的区别,不需要写路径的。
ENTRYPOINT是容器启动的时候执行命令。
所以,很简单,一个标准的springboot的镜像Dockerfile就这么写好了。存放在项目的根目录下。
Screen Shot 2018-12-08 at 10.47.58 AM.png
-
执行mvn clean package docker:build命令,可以直接看到执行的结果:
Screen Shot 2018-12-08 at 10.50.19 AM.png
那么镜像基本就打好了在本地。通过命令来看下:
Screen Shot 2018-12-08 at 10.51.55 AM.png
看到第一个镜像了么,就是本地镜像了。
-
好了,最后一步,启动镜像:
Screen Shot 2018-12-08 at 10.54.01 AM.png
启动成功了,通过本机浏览器访问:localhost:8889/demo即能看到“hello world!”
至于docker 的启动命令,大家自己去熟悉。
后面有时间再给大家分享下docker-compose和k8s相关。
网友评论