源码时代java干货分享|手把手教你用maven构建docker镜像

IT-source IT-source     2022-12-08     413

关键词:

一 、原理分析

由于我们开发pc上面没有docker,所以没办法直接打包镜像,所以要调用远程主机docker进行。并且远程主机docker默认不支持远程访问,所以需要开启远程。然后我们在项目中以docker maven插件方式进行打包镜像。

具体步骤如下:
1 远程主机docker支持远程访问
2 本地项目配置maven docker插件,并允许打包镜像

二 远程主机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

172.16.4.194:2375

防火墙对该端口放行
firewall-cmd --permanent --zone=public --add-port=2375/tcp
systemctl restart firewalld

三 本地项目配置maven docker插件,并允许打包镜像

3.1 配置docker maven插件

eureka


org.springframework.boot
spring-boot-maven-plugin


cn.itsource.hrm.EurekaServer7001Application




repackage






com.spotify
docker-maven-plugin
0.4.13

172.16.4.194:5000/ p r o j e c t . a r t i f a c t I d : project.artifactId: project.artifactId:project.version
jdk1.8
[“java”, “-jar”, "/ p r o j e c t . b u i l d . f i n a l N a m e . j a r " ] < / e n t r y P o i n t > < r e s o u r c e s > < r e s o u r c e > < t a r g e t P a t h > / < / t a r g e t P a t h > < d i r e c t o r y > project.build.finalName.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory> project.build.finalName.jar"]</entryPoint><resources><resource><targetPath>/</targetPath><directory>project.build.directory

$project.build.finalName.jar


http://172.16.4.194:2375



以上配置会自动生成Dockerfile


FROM jdk1.8
ADD app.jar /
ENTRYPOINT [“java”,"‐jar","/app.jar"]
3.2 打包镜像并运行容器
3.2.1 打包
在windows的命令提示符下,进入工程hrm_eureka_7001所在的目录
进入Eureka 所在的目录,输入以下命令,进行打包和上传镜像
mvn docker:build ‐DpushImage

3.2.2 查看镜像
进入宿主机 , 查看镜像

输出如上内容,表示微服务已经做成镜像
浏览器访问 http://192.168.184.141:5000/v2/_catalog ,输出
“repositories”:[“hrm_eureka”]
3.2.3 启动容器
docker run ‐di ‐‐name=eureka ‐p 7001:7001
192.168.184.141:5000/hrm_eureka:1.0‐SNAPSHO

从无到有,手把手教你用maven怒草一个springboot项目出来(代码片段)

1、使用Navicat新建一个数据库  2、新建一个数据表CREATETABLEt_user(idint(6)PRIMARYKEYauto_increment,nameVARCHAR(40),ageint(3),birTIMESTAMP) 3、新建一个project,file->new->project选择maven,webapp  填 查看详情

腾讯bugly干货分享精神哥手把手教你怎样智斗anr

上帝说要有ANR,于是Bugly就有了ANR上报。那么ANR究竟是什么?近期非常多童鞋问起精神哥ANR的问题,那么这次就来聊一下,鸡爪怎么泡才好吃。噢不,是怎样高速定位ANR。ANR是什么简单说,通常就是App执行的时候,duang~卡住了。... 查看详情

手把手教你用python获取金融数据,太有用了

恒有数(UDATA)金融数据社区,由恒生电子出品。社区推出了Python金融量化资源合集(持续更新),建议收藏。点击下方小程序查看更多干货资源。 查看详情

手把手教你用代码实现sso单点登录(代码片段)

1.概述1.1.什么是SSO?Hollis的新书限时折扣中,一本深入讲解Java基础的干货笔记!单点登录(SingleSign-On,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需... 查看详情

手把手教你用python接私活赚钱

先说个新闻,Tiobe编程语言排行榜十月新榜发布,Python仍领先老对手Java和C,稳居稳居榜单第一,且领先幅度极大。榜单数据是客观真实的,当下Python的使用者越来越多,已经远超其他语言。其在网络爬虫... 查看详情

手把手教你用java实现syslog消息的收发,学不会你打我喽!

大家好,我是道哥,专注于后端java开发,喜欢写作和分享。如果觉得文章对你有用,那就点个赞呗!如果能转发那是对道哥最大的支持!syslog的定义见文知义,syslog,从英文名字上可以看出是指系统日志。以下内容摘自百度百... 查看详情

深度学习入门篇--手把手教你用tensorflow训练模型

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~作者:付越 导语Tensorflow在更新1.0版本之后多了很多新功能,其中放出了很多用tf框架写的深度网络结构(https://github.com/tensorflow/models ),大大降低了开... 查看详情

手把手教你用eclipse+testng搭建接口自动化测试框架

一、环境安装1、前提安装好jdk配置好Java环境变量安装Eclips这些网上都有,就不再详细介绍。资源分享链接:http://pan.baidu.com/s/1v9Fw62、安装TestNG插件在线安装由于网速原因,速度较慢。下面是离线安装方式。(1)解压eclipse-testng... 查看详情

源码时代java干货分享|springsecurity快速上手秘籍(代码片段)

前言至今Java能够如此的火爆Spring做出了很大的贡献,它的出现让Java程序的编写更为简单灵活,而Spring如今也形成了自己的生态圈,今天咱们探讨的是Spring旗下的一个款认证工具:SpringSecurity,如今认证框架主流“sh... 查看详情

手把手教你用express搭建个人博客

新手入门指引,如果你很熟悉express的用法那么就可以跳过教程到底部,到github看下源码1.首先需要安装node环境,版本最新比较好,最低4.0+吧  我本地的node环境是6.4:   2.express中文官网:http://www.expressjs.com.cn/,在这里... 查看详情

手把手教你用python和flask创建restapi(代码片段)

本文是​为了在实际工作中,可能存在要求数据挖掘工程师或算法工程师将你的机器学习模型封装,并提供API供其他软件工程师调用。今天我就和大家一起学习如何使用更好的RESTAPI创建FlaskAPI。这个方法是技术群的一个... 查看详情

❤️python表白神器手把手教你用代码浪漫追求对象!❤️(附完整源码+讲解)(代码片段)

文章目录一、前言二、演示看效果!三、网站制作四、部署网站五、二维码制作六、强烈推荐系列教程,建议学起来!!七、总结一、前言跟着我做,做成功就去表白,不介意的话表白成功给我打个赏。第... 查看详情

半小时体验云原生:手把手教你在k8s上部署springboot应用——干货分享,建议收藏(代码片段)

你会不会对“云原生”很有兴趣,却不知道从何入手?本文会在window环境下,构建一套基于k8s的istio环境,并且通过skaffold完成镜像的构建和项目部署到集群环境。其实对于实验环境有限的朋友们,完全可以在... 查看详情

源码时代java干货分享|带你了解原型模式_prototype

原型模式概述在java中创建一个对象通过new是非常繁琐的,需要创建检查权限,做一些数据准备等等,因此也会销毁系统性能,那么想要快快速简单的创建出对象,我们可以通过原型模式实现,以某个对象... 查看详情

动手实践丨手把手教你用stm32做一个智能鱼缸

摘要:本文基于STM32单片机设计了一款基于物联网的智能鱼缸。本文分享自华为云社区《​​基于STM32+华为云IOT设计的物联网鱼缸【玩转华为云】​​》,作者:DS小龙哥。1.前言为了缓解学习、生活、工作带来的压力,提升生活... 查看详情

手把手教你如何导入源码,zookeeper为例

...导入工作。本次使用的idea。步骤:安装java就省略啦手把手教你如何导入源码,zookeeper为例软件一,安装idea二,安装git三,安装maven四,将zookeeper项目fork到自己的github代码五,导 查看详情

源码时代java干货分享|带你认识zookeeper分布式服务框架

本质它是一个分布式服务框架,是ApacheHadoop的一个子项目提供一种集中式信息存储服务,用于解决分布式应用中的一些数据管理问题简单来说zookeeper=文件系统+监听通知机制。特点数据存在内存中类似文件系统的树... 查看详情

❤️手把手教你用androidstudio做一个超好玩的拼图游戏,0基础android小白也能包你学会,附送超详细注释的源码,建议收藏!❤️(代码片段)

文章目录一、项目概述二、开发环境三、需求分析四、实现过程1、拼图游戏布局绘制2、拼图游戏时间计时3、拼图游戏打乱显示4、拼图游戏碎片位置切换5、拼图游戏成功的条件6、拼图游戏重新开始五、运行效果六、项目总结七... 查看详情