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>demo</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>
<!--imaname是将要创建的镜像名称-->
<imageName>192.168.73.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.73.128:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
以上配置会自动生成Dockerfile
FROM jdk1.8
ADD app.jar /
ENTRYPOINT
["java","-jar","/app.jar"]
浏览器访问
htp://192.168.73.128:5000/v2/_catalog
输出
(5)在windows的命令提示符下,进入工程所在的目录,输入以下命令,进行打包和上传镜像
mvn clean package docker:build -DpushImage
执行后,会有如下输出,代码正在上传
出现连接超时等请检查私有仓库端口是否打开
(6)进入宿主机,查看镜像
docker images
输出如上内容,表示微服务已经做成镜像
(7)启动容器
docker run -di --name=base -p 8080:8080 192.168.73.128:5000/demo:0.0.1-SNAPSHOT
常见报错:
docker: Error response from daemon: driver failed programming external……
打开防火墙端口,并重启docker。