一、 项目pom中设
192.168.10.10:5000 是docker的仓库地址,也就是registry的地址
1.第一种
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<docker.repostory>192.168.10.10:5000</docker.repostory>
</properties>
...
...
...
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.yncjtz.SearchApplication</mainClass>
<finalName>${project.build.finalName}</finalName>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<!--放开这块注释,则运行mvn deploy命令就会打包镜像-->
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>${docker.repostory}/${project.artifactId}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
1.第二种
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<docker.repostory>192.168.10.10:5000</docker.repostory>
</properties>
...
...
...
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--main启动方法类-->
<mainClass>com.yncjtz.AuthApplication</mainClass>
<finalName>${project.name}</finalName>
</configuration>
</plugin>
<!--docker maven插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.10</version>
<executions>
<execution>
<id>default</id>
<goals>
<!--如果package时不想用docker打包,就注释掉这个goal-->
<!-- <goal>build</goal>
<goal>push</goal>-->
</goals>
</execution>
</executions>
<configuration>
<repository>${docker.repostory}/${project.artifactId}</repository>
<tag>latest</tag>
<buildArgs>
<!--提供参数向Dockerfile传递-->
<JAR_FILE>target/${project.name}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
注意:
#下面两个必须相同才能打出可以build的jar包
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
<finalName>${project.build.finalName}</finalName>
二、window系统设置
1.安装docker环境
2.配置环境变量
DOCKER_HOST
tcp://192.168.10.10:2375
如图
image.png
三、配置linux上的docker
1.开放远程Docker远程访问端口
#编辑docker.service文件
vim /lib/systemd/system/docker.service
#内容修改
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

image.png
2.重启docker服务
systemctl restart docker
四、编写dockerfile
Dockerfile
FROM anapsix/alpine-java
MAINTAINER kexianjun
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} /app/app.jar
WORKDIR /app
RUN bash -c 'touch /app.jar'
EXPOSE 21000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-jar", "./app.jar","--spring.profiles.active=pre"]
其他在idea中就可以打包构建上传了