关注分享主机优惠活动
国内外VPS云服务器

IDEA集成Docker实现一键部署的详细流程(idea docker开发)

在和前端调试的过程中,电脑每次用IDEA启动服务都不能动,然后改了代码就重启,可能会导致前端报错。所以为了给前端提供调试服务,自己也能正常工作,就想到了用docker,可以做到两全其美。为什么不做呢?

1.第一次认识DockerDocker的三个基本概念:

Dockerfile:镜像构建的模板,描述了镜像构建的步骤,通常是删除一些文件和依赖关系;Image: image,用于创建容器的文件。容器:容器,一个可运行的映像实例,在里面运行一个完整的操作系统,可以做你当前操作系统能做的一切。以我的理解,打个比方以上三个:dockerfile是具体的配比说明(原料、步骤等。).按照这个指令搅拌混凝土(镜像),然后以混凝土为基础,就可以做成房间(容器)。每个房间都是相互独立的,住着不同的人。

对于美国开发者,Docker可以做到:

写本地代码。使用Docker将程序推送到测试环境。找到bug后,在开发环境中修复它们,并重新部署到测试环境中。测试完成后,将代码合并到发布的代码分支中。

2.Docker集成了基于Windows的思想

2.1在窗户上安装docker。注意:安装前一定要打开windows的WSL,否则会导致docker启动不成功。

2.2设置docker配置为开放端口2375,勾选此选项IDEA集成Docker实现一键部署的详细流程(idea docker开发)-主机频道

添加主机:

连接对接测试

IDEA集成Docker实现一键部署的详细流程(idea docker开发)-主机频道

注意:如果是本地应用,可以使用tcp://localhost:2375连接;如果是局域网,其他机器可以使用局域网ipv4连接;如果是远程机器,使用公共ip连接。

如上图所示,连接成功是成功的标志。

//如果使用ip访问时连接不成功,在windows的admin permission terminal窗口中执行以下命令:port proxy netsh interface port proxy add v4 to v4 listen port = 2375 connect address = 127 . 0 . 0 . 1 connect port = 2375 listen address = < your IP v4 & gt;protocol=tcp//向端口2375添加防火墙规则netsh adv firewall firewall Add rule name = " docker _ daemon " dir = unaction = allow protocol = tcplocalport = 2375。说说小编的亲身经历:主机配置完成后,局域网内的其他机器可以连接docker,但是第二天早上就不能再工作了。过了几天,还是不行。突然,偶然可以重新连接。

//执行以下命令,然后检查端口netsh接口端口代理show all of 2375//delete all port proxy netsh接口端口代理delete v4 to v4 listen address = < your IP v4 & gt;Listenport=2375//重新执行端口代理Netsh接口端口代理Add v4 tov 4 listen Port = 2375 connect address = 127 . 0 . 0 . 1 connect Port = 2375 listen address =

2.4启动Springboot应用测试构建测试项目@ RestControllerPublicClass测试控制器{@ GetMapping ("/get/hello ")公共字符串get(){ return " hello world ";}}@SpringBootApplicationpublic类SpringBootWithDockerStarter { public static void main(String

添加maven的docker包插件

& lt构建& gt& lt插件& gt& lt插件& gt& ltgroupId & gtorg . spring framework . boot & lt;/groupId & gt;& ltartifactId & gtspring -boot -maven -plugin & lt;/artifact id & gt;& lt/plugin & gt;& lt插件& gt& lt!制作docker镜像的-- maven插件-->:& lt;groupId & gtcom.spotify & lt/groupId & gt;& ltartifactId & gtdocker -maven -plugin & lt;/artifact id & gt;& lt版本& gt1.2.2&lt/version & gt;& lt执行& gt& lt执行& gt& ltid & gtbuild -image & lt;/id & gt;& lt阶段& gt包& lt/phase & gt;& lt目标& gt& lt目标& gt构建& lt/goal & gt;& lt/goals & gt;& lt/execution & gt;& lt/executions & gt;& lt配置& gt& ltimageName & gt${ project . artifact id } & lt;/imageName & gt;& lt!--图像名,注意:这里的图像名必须小写。如果你的应用程序名称是大写的,你将报告一个-->的错误;& ltimageTags & gt& ltimageTag & gt最新& lt/image tag & gt;& lt/image tags & gt;& ltdockerDirectory & gt$ { project.basedir } & lt/docker directory & gt;& lt!--Dockerfile目录-->:& lt;dockerHost & gthttp://127 . 0 . 0 . 1:2375 & lt;/docker host & gt;& lt!---docker所在的主机地址,或者填写http://yourip:2375-->;& lt资源& gt& lt资源& gt& lt!--这里的配置是打包的jar的位置-->:& lt;targetPath & gt/& lt;/target path & gt;& lt目录& gt$ { project . build . directory } & lt;/directory & gt;& lt!一般--构建的类文件的路径是target -->:& lt;包括& gt${ project . build . final name }。jar & lt/include & gt;& lt/resource & gt;& lt/resources & gt;& lt/configuration & gt;& lt/plugin & gt;& lt/plugins & gt;& lt/build & gt;打包应用程序。

IDEA集成Docker实现一键部署的详细流程(idea docker开发)-主机频道

打包后,您将在目标目录中找到jar包

配置Docker。这里的配置应该和pom文件最终生成的name标签一致。

IDEA集成Docker实现一键部署的详细流程(idea docker开发)-主机频道

项目部署完成后,使用localhost:8080/get/hello访问返回的数据是成功的。

IDEA集成Docker实现一键部署的详细流程(idea docker开发)-主机频道

docker控制台中文乱码修复

//添加字符参数后重启idea -dfile . encoding = ut F-8-dsun . jnu . encoding = ut F-8

3.Docker集成了基于Linux的思想进行更新。。。

4.连接主机的redis服务//添加Redis依赖关系< dependency & gt& ltgroupId & gtorg . spring framework . boot & lt;/groupId & gt;& ltartifactId & gtspring -boot -starter -data -redis & lt;/artifact id & gt;& lt/dependency & gt;//添加redis配置# springdefaultconfigspring . redis:host:your -IP v4//主机的IP。如果您当前启动项目的docker中没有安装Redis,在此处输入localhost将会报告一个错误port:6379 time out:5000 lettuce . pool:# max connection number in connection poll,默认数字是8 max-active: 20 #最大等待时间,默认-1,这意味着没有限制。单位:ms max-wait: -1 #最大空闲连接数,默认为8 max-idle: 8 #最小空闲连接数,默认为0min -idle:0 @ configuration public class redis config { @ Bean(name = " redis template ")public stringdistemplate redis template(RedisConnectionFactory RedisConnectionFactory){ stringdistemplate stringdistemplate = new stringdistemplate();stringdistemplate . setconnectionfactory(redisConnectionFactory);返回stringRedisTemplate} } @ rest controller @ request mapping("/docker ")公共类docker controller { @ auto wired private stringdistemplate stringdistemplate;@ get mapping("/redis/set ")public String setRedisData(@ request param(" value ")String value){ String key = " docker ";stringRedisTemplate.opsForValue()。set(键,值);string strValue = stringdistemplate . ops for value()。get(键);返回strValue} }//重新打包,点击docker运行。

5.连接docker中的redis服务以获取redis密码

IDEA集成Docker实现一键部署的详细流程(idea docker开发)-主机频道

使用命令连接容器:docker Exec-IT容器名/bin/bash使用命令连接redis客户端:redis-cli使用auth {password}授权成功。在spring-boot项目中修改配置之前,我们在主机端的Docker中找到了redis的端口号,这样可以保证连接成功。

IDEA集成Docker实现一键部署的详细流程(idea docker开发)-主机频道

修改项目中的配置

//添加redis配置# springdefaultconfigspring . redis:host:your -IP v4//主机的IP。如果Redis没有安装在您当前启动项目的docker中,在这里填写localhost将会报告一个错误。端口:49153 //与上图端口一致< ----第一位修改密码:re show//添加密码

未经允许不得转载:主机频道 » IDEA集成Docker实现一键部署的详细流程(idea docker开发)

评论 抢沙发

评论前必须登录!