微服务部署
1、手动部署
将源码生成jar;然后手动部署到服务器(JDK环境)上;命令启动;
2、通过Maven插件自动部署
项目pom.xml添加docker-maven-plugin自动发布到服务器(JDK、Docker环境、私有仓库);执行命令;
搭建私有仓库
(1)搭建私有仓库
启动私有仓库容器
docker run -di --name=registry -p 5000:5000 registry
打开浏览器 输入地址http://192.168.184.144:5000/v2/_catalog看到{“repositories”:[]} 表示私有仓库搭建成功并且内容为空
修改daemon.json
vi /etc/docker/daemon.json
添加以下内容,保存退出。
{“insecure-registries”:[“192.168.184.144:5000”]}
(2)修改宿主机的docker配置,让其可以远程访问
vi /lib/systemd/system/docker.service
其中ExecStart=后添加配置-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
修改后如下:
(3)刷新配置,重启服务
systemctl daemon-reload
systemctl restart docker
docker start registry
项目添加插件
<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.141: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.141:2375</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
以上配置会自动生成Dockerfile
FROM jdk1.8
ADD app.jar /
ENTRYPOINT [“java”,"-jar","/app.jar"]
mvn install
mvn docker:build -DpushImage
启动容器
(1)查看镜像
docker images
浏览器访问 http://192.168.184.144:5000/v2/_catalog
{"repositories":["app"]}
(2)启动容器
docker run -di --name=base -p 8080:8080 192.168.184.141:5000/app:1.0-SNAPSHOT