DockerMaven插件
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://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"]
(5)在windows的命令提示符下,进入工程tensquare_parent所在的目录
mvn install
进入tensquare_base 所在的目录,输入以下命令,进行打包和上传镜像
mvn docker:build -DpushImage
执行后,会有如下输出,代码正在上传
(6)进入宿主机 , 查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.184.135:5000/tensquare_base 1.0-SNAPSHOT 83efa6b4478c 10 minutes ago 687.9 MB 192.168.184.135:5000/jdk1.8 latest 507438a0158f 6 hours ago 584 MB jdk1.8 latest 507438a0158f 6 hours ago 584 MB
输出如上内容,表示微服务已经做成镜像 浏览器访问 http://192.168.184.141:5000/v2/_catalog ,输出
{"repositories":["tensquare_base"]}
浏览器访问 http://192.168.184.141:5000/v2/_catalog ,输出
{"repositories":["tensquare_base"]}
(7) 启动容器:
docker run -di --name=base -p 9001:9001 192.168.184.141:5000/tensquare_base:1.0- SNAPSHOT
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2019-09-09 window对象、计时相关的函数、location对象、JS中查找标签的各种方式、节点操作、对类的操作、JQuery中标签的查找