李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
工具
正文
DockerMaven插件
Leefs
2020-01-11 PM
3468℃
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
工具
35
其它
25
GO
48
NLP
8
标签云
DataX
递归
Stream流
ClickHouse
MyBatis-Plus
数据结构
SpringCloud
JavaSE
数据结构和算法
JavaWeb
Spark Core
锁
前端
机器学习
栈
序列化和反序列化
持有对象
JavaScript
Java编程思想
Typora
RSA加解密
MyBatis
Spark RDD
散列
并发线程
SQL练习题
工具
CentOS
线程池
FileBeat
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞