DockerMaven插件
注意:
在这之前已经要确保已经让docker信任私有仓库的地址:在daemon.json文件中添加以下配置:
{"insecure-registries":["自己服务器的ip地址:5000"]}
微服务部署有两种方式:
- 将项目打成jar包或者是war包,然后上传到虚拟机中并拷贝到JDK容器中
- 通过Maven差价实现自动部署
修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start registry
在pom文件中加入一下配置
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--生成镜像的名称,并且引用了项目的artifactId和版本-->
<imageName>192.168.56.132:5000/${project.artifactId}:${project.version}</imageName>
<!--相当于Dockerfile文件中的FROM jdk1.8-->
<baseImage>jdk1.8</baseImage>
<!--相当于Dokcerfile文件中的ENTRYPOINT ["java","-jar","/app.jar"]-->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<dockerHost>http://192.168.56.132:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
以上配置会自动生成Dockerfile文件:
FROM jdk1.8
ADD app.jar /
ENTRYPOINT ["java","-jar","/app.jar"]
在idea中的命令行输入命令将工程打包:
mvn install
在需要上传到docker仓库的工程中(添加了maven插件配置的工程中)输入以下命令进行打包和上传:
mvn docker:build -DpushImage
此时进入宿主机就可以查看到创建的镜像:
docker images
此时访问浏览器就可以输出:
浏览器访问 http://服务器的ip:5000/v2/_catalog
{"repositories":["创建的镜像的名称"]}