李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
工具
正文
DockerMaven插件
Leefs
2020-01-11 PM
1881℃
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://www.lilinchao.com/archives/403.html
上一篇
容器深入研究--Collection的功能方法
下一篇
持续集成工具--Jenkins简介
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
Jquery
Scala
哈希表
Spark
前端
Hive
Elastisearch
查找
Python
Shiro
排序
DataWarehouse
ajax
数据结构和算法
Spring
Spark RDD
Elasticsearch
JavaWEB项目搭建
并发线程
MyBatis
线程池
Ubuntu
LeetCode刷题
设计模式
HDFS
队列
数据结构
国产数据库改造
Redis
Tomcat
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞