编写Dockerfile
#FROM:基于java:8镜像构建
FROM openjdk:8
#EXPOSE:监听8080端口,暴露容器的8080端口,该端口余项目端口需要一致
EXPOSE 8080
#ARG:引用plugin中配置的 JAR_FILE 文件
ARG JAR_FILE
#ADD:将当前 target 目录下的 jar 放置在根目录下,命名为 tom.jar,推荐使用绝对路径。
ADD target/${JAR_FILE} /tom.jar
#ENTRYPOINT:执行命令 java -jar /tom.jar
ENTRYPOINT ["java", "-jar","/tom.jar"]#打包成镜像
# mvn clean package dockerfile:build -Dmaven.test.skip=true
#结果为
#[root@VM-12-15-centos tom]# docker images
#REPOSITORY TAG IMAGE ID CREATED SIZE
#tom/tom 0.0.1-SNAPSHOT 28ddda16f21a 28 minutes ago 568MB
#jenkins/jenkins latest 63914f7b7fd6 2 months ago 474MB
#portainer/portainer-ce latest 1a0fb356ea35 3 months ago 294MB
#boot/10 latest ca586b8faec7 7 months ago 575MB
#nginx latest 89da1fb6dcb9 8 months ago 187MB
#jenkinsci/blueocean latest 04540a0bb985 18 months ago 579MB
#openjdk 8 b273004037cc 20 months ago 526MB#运行容器,宿主端口:容器端口
#docker run -d -p 8080:8080 --name tom tom/tom:0.0.1-SNAPSHOT
#结果为
#CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#e11339f87323 tom/tom:0.0.1-SNAPSHOT "java -jar /tom.jar" 32 minutes ago Up 32 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp tom
#33d9ac278812 portainer/portainer-ce:latest "/portainer" 52 minutes ago Up 52 minutes 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp portainer22
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.my</groupId><artifactId>tom</artifactId><version>0.0.1-SNAPSHOT</version><name>tom</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><docker.image.prefix>tom</docker.image.prefix></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>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.7</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.16</version></dependency><!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- <version>2.3.1</version>-->
<!-- </dependency>--><!-- 集成redis依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version></dependency><!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --><!--Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.16</version></dependency><!-- lombok依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- alibaba的fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.60</version></dependency><!-- 工具包 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.8.1</version></dependency><!-- rsa加密工具--><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.55</version></dependency><!-- 计算内存大小--><dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.9</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.4.13</version><executions><execution><id>default</id><goals><goal>build</goal><goal>push</goal></goals></execution></executions><configuration><!-- 镜像的 REPOSITORY 值 --><repository>${docker.image.prefix}/${project.artifactId}</repository><!-- 镜像的 TAG 值 --><tag>${project.version}</tag><!-- jar 名称,供Dockerfile 使用--><buildArgs><JAR_FILE>${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin></plugins></build></project>