1.DockerMaven 插件
微服务部署有两种方法:
(1)手动部署:首先基于源码打包生成jar包(或war包) ,将jar包(或war)上传到虚拟机并拷贝至JDK容器
(2)通过maven插件自动部署
对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们需要学习如何自动部署。
Maven插件自动部署步骤:
(1)修改宿主主机的docker配置,让其可以访问
vi /lib/systemd/system/docker.service
其中 ExecStart=后添加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
(2)刷新配置,重启服务
systemctl daemon-reload systemctl restart docker docker start registry
(3)在工程pom.xml增加配置
<build> <finalName>app</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!--docker的maven插件,官网:https://giithub.com/spotify/docker-maven-plugin--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>192.168.222.128:5000/${project.artifactId}:${project.version}}</imageName> <baseImage>jdk1.8</baseImage> <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.222.128</dockerHost> </configuration> </plugin> </plugins></build>
以上配置会自动生成Dockerfile
FROM jdk1.8 ADD app.jar / ENTRYPOINT ["java","-jar","/app.jar"]
(5)在命令提示符,进入工程所在目录,输入以下命令,进行打包和上传镜像
mvn clean package docker:build -DpushImage
浏览器访问192.168.222.128:5000/v2/_catalog,输出中含有上传的文件则说明上传成功
(6)进入宿主机,查看镜像
dockers images
(7)启动容器
docker run -di --name=base -p 9001:9001 192.168.222.128:5000/文件_bash:1.0-SUAPSHOT