微服务部署有两种方法:
一、手动部署:
首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器。
二、通过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、修改jack-discovery-eureka工程的pom.xml
<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>
<imageName>192.168.184.135: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.184.135:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
4、在windows的命令提示符下,进入jack-discovery-eureka工程所在的目录,输入以下 命令,进行打包和上传镜像
mvn clean package docker:build ‐DpushImage -Dmaven.test.skip=true
浏览器访问 http://192.168.1.8:5000/v2/_catalog ,输出
{"repositories":["jack-discovery-eureka"]}
5、进入宿主机 , 查看镜像
docker images
6、 启动容器
docker run ‐d ‐‐name=eureka ‐p 8761:8671
192.168.1.8:5000/jack-discovery-eureka:0.0.1-SNAPSHOT
总结:
- 启动容器需要暴露端口,见博客:centos7开放端口常用命令
- maven插件 除了pom.xml 中直接运行,还可以 采用Dockerfile方式运行
- 该文采用的都是手动执行命令,后文采用jenkins直接 打包、创建镜像、启动容器