李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
工具
正文
DockerMaven插件
Leefs
2020-01-11 PM
2642℃
0条
# DockerMaven插件 ### 前言 微服务部署有两种方法: (1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚拟机并拷贝至JDK容器。 (2)通过Maven插件自动部署。 对于数量众多的微服务,手动部署无疑是非常麻烦的做法,并且容易出错。所以我们这里学习如何自动部署,这也是企业实际开发中经常使用的方法。 ### Maven插件自动部署 **步骤:** (1)修改宿主机的docker配置,让其可以远程访问 ``` vi /lib/systemd/system/docker.service ``` 修改如下配置文件: ``` 原来文件中ExecStart=是下方内容的: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 需要ExecStart=后面修改成如下配置 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 或者修改成: ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock 都可以实现Maven远程访问 ``` ![DockerMaven02.png][1] (2)刷新配置,重启服务 ``` systemctl daemon-reload systemctl restart docker docker start registry ``` (3)在工程pom.xml 增加配置 ```xml
app
org.springframework.boot
spring-boot-maven-plugin
com.spotify
docker-maven-plugin
0.4.13
192.168.102.144:5000/${project.artifactId}:${project.version}
jdk1.8
["java", "-jar", "/${project.build.finalName}.jar"]
/
${project.build.directory}
${project.build.finalName}.jar
http://192.168.102.144:2375
``` 以上配置会自动生成Dockerfile ``` FROM jdk1.8 ADD app.jar / ENTRYPOINT ["java","-jar","/app.jar"] ``` (5)在windows的命令提示符下,进入工程springboot-shiro所在的目录 ``` mvn install ``` ![DockerMaven03.png][2] **命令解析** mvn install:把自定义的maven项目,安装至本地Maven仓库。 命令输出日志 ``` [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ springboot-shiro --- [INFO] Building jar: D:\Web\SVN\springboot-shiro\target\app.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.2.2.RELEASE:repackage (repackage) @ springboot-shiro --- [INFO] Replacing main artifact with repackaged archive [INFO] [INFO] --- maven-install-plugin:2.5.2:install (default-install) @ springboot-shiro --- [INFO] Installing D:\Web\SVN\springboot-shiro\target\app.jar to D:\Tools\Maven\maven-repository\com\hhstu\springboot-shiro\springboot-shiro\0.0.1-SNAPSHOT\springboot-shiro-0.0.1-SNAPSHO T.jar [INFO] Installing D:\Web\SVN\springboot-shiro\pom.xml to D:\Tools\Maven\maven-repository\com\hhstu\springboot-shiro\springboot-shiro\0.0.1-SNAPSHOT\springboot-shiro-0.0.1-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS ``` **从上方日志可以看出安装的过程** > 1. 1.先在自己项目的target文件下打成一个Jar包 > 2. 2.在将该Jar包安装到自己本地仓库的Maven中 > 3. 3.将项目中的pom.xml文件安装到本地Maven中 注意安装完成后看安装日志 进入springboot-shiro 所在的目录,输入以下命令,进行打包和上传镜像 ``` mvn docker:build -DpushImage ``` ![DockerMaven04.png][3] 但是,过程并不是那么的一帆风顺 执行完命令以后查看日志报如下错误 ```visual basic [ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project springboot-shiro: Exception caught: Timeout: GET http://192.168.102.144:2375/version: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: org.apache.http.conn.ConnectTimeoutException: Connect to 192.168.102.144:2375 [/192.168.102.144] failed: connect timed out -> [Help 1] ``` 连接远程Maven失败!!! 这时候想到的可能是远程服务器防火墙将2375这个端口给禁用了 这时候需要开通端口或者关闭防火墙 ```visual basic [root@localhost ~]# firewall-cmd --state #查看防火墙状态 running [root@localhost ~]# systemctl stop firewalld.service #关闭防火墙 [root@localhost ~]# firewall-cmd --state not running ``` (6)在远程服务器中查看本地镜像 ``` docker images ``` ![DockerMaven05.png][4] 输出如上内容,表示微服务已经做成镜像 浏览器访问 http://192.168.102.144:5000/v2/_catalog ,输出 ```json { repositories: [ "jdk1.8", "springboot-shiro" ] } ``` (7) 启动容器: ``` [root@localhost ~]# docker run -id --name=springboot-shiro -p 8080:8082 192.168.102.144:5000/springboot-shiro:0.0.1-SNAPSHOT ``` 在执行上方命令时报一个错误 ``` docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"java\": executable file not found in $PATH": unknown. ``` **未解决!!!** 如果有解决过该问题的朋友可以在评论区给我留言 [1]: https://lilinchao.com/usr/uploads/2020/01/3192935886.png [2]: https://lilinchao.com/usr/uploads/2020/01/3482861337.png [3]: https://lilinchao.com/usr/uploads/2020/01/1817417390.png [4]: https://lilinchao.com/usr/uploads/2020/01/984411661.png
标签:
Linux
,
Docker
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/403.html
上一篇
容器深入研究--Collection的功能方法
下一篇
持续集成工具--Jenkins简介
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
48
NLP
8
标签云
前端
JavaSE
Java编程思想
Java
JVM
Eclipse
Map
Netty
随笔
Java工具类
递归
Filter
Nacos
Tomcat
ClickHouse
散列
人工智能
RSA加解密
Kibana
线程池
FileBeat
BurpSuite
Stream流
MyBatis
持有对象
Hbase
Redis
Ubuntu
Beego
并发编程
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞