当前位置: 首页 > 后端技术 > Java

一键部署应用到远程服务器,IDEA官方的Docker插件堪称一流!

时间:2023-04-01 20:05:10 Java

1.Docker开启远程连接访问首先,我们需要开启docker远程连接访问。确保不是docker所在的服务器,也可以远程访问docker。linux版docker:1、修改docker.service文件,添加监听端口-Htcp://0.0.0.0:2375vi/usr/lib/systemd/system/docker.service,找到ExecStart,添加-Htcp最后://0.0.0.0:2375,如下图2.重启dockersystemctldaemon-reloadsystemctlstartdocker3。如果我们有防火,记得添加防火墙策略或者关闭防火墙。windows版的docker,在电脑左下角找到docker图标,右键选择设置。在常规菜单下勾选Exposedaemonontcp://localhost:2375withoutTLS。无需重启。在File-->Settings-->Plugins中安装配置idea的docker插件,在输入框搜索Docker,选择并安装。安装完成后重启Docker。配置docker,在File-->Settings-->Build,Execution,Deployment中找到Docker新建一个docker实例,然后在EngineAPIURL中填写docker所在的ip端口号,如果下面显示Connectionsuccessful,则说明证明连接docker成功。如果失败,可能是我们上一步没有成功打开与docker的远程连接。我们设置好之后,回到idea的主界面,可以在页面下方看到一个docker窗口。单击绿色箭头连接到docker。连接后显示Containers和Images就是我们已经在docker中的容器和镜像。创建一个项目并配置它。1、在创建项目的时候,我会用一个简单的Eureka项目来演示。File-->New-->Project-->SpringInitializr2.配置项目推荐一个开源免费的SpringBoot最全教程:https://github.com/javastacks/spring-boot-best-practice修改pom。xml文件,引入docker-maven-plugin插件的相关配置。更改标签中的配置com.spotifydocker-maven-plugin1.0.0build-imagepackagebuild${project.artifactId}latest${project.basedir}/src/main/resourceshttp://127.0.0.1:2375/${project.build.directory}${project.build.finalName}.jar配置项目的基本配置(这里不是重点,提一下)①修改application.properties,添加项目相关信息。#项目启动的端口号和IP地址server.port=9090eureka.instance.hostname=127.0.0.1#是否注册到注册中心,如果不是集群环境,falseureka.client.register-with-eureka=false#是否获取Service,falseureka.client.fetch-registry=falseeureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/②找到项目启动类,添加@EnableEurekaServer注解@EnableEurekaServer@SpringBootApplicationpublicclassEurekaserverApplication{publicstaticvoidmain(String[]args){SpringApplication.run(EurekaserverApplication.class,args);}}添加Dockerfile。我们在EeurekaServer\src\main\resources目录下添加一个名为Dockerfile的文件。如果docker中没有java:8镜像,请先使用dockerpulljava:8拉取镜像。FROMjava:8VOLUME/tmpADD*.jarapp.jarEXPOSE9090ENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]我们添加我指定了一个指向“/tmp”内容的VOLUME,因为这是SpringBoot应用程序默认为Tomcat创建工作目录的地方。作用是在宿主机的“/var/lib/docker”下创建一个临时文件,链接到“/tmp”下的容器。对于我们在这里编写的简单应用程序,此步骤是可选的,但如果需要实际写入文件系统,则对于其他SpringBoot应用程序可能是必需的。为了减少Tomcat启动时间,我们添加了一个指向“/dev/urandom”的系统属性作为熵源。如果您使用“标准”版本的Tomcat(或任何其他Web服务器),则不需要更新版本的SpringBoot。maven打包,生成的镜像用maven打包。我们在pom.xml中配置好了,如果我们使用maven包,那么会自动使用Dockerfile文件进行构建。从控制台可以看到,已经为我构建了一个和我们项目同名的镜像文件。我们在docker窗口中可以看到,我们的镜像库中多了一个eurekaserver:latest镜像。创建一个容器并将项目部署到docker。在docker窗口中,找到我们刚刚创建的镜像文件,右击,选择Createcontainer。我们修改创建容器所需的配置。在CreateDockerConfiguration弹窗中修改Containername(容器名称)Bindports(Ip和端口映射)。我在这里添加127.0.0.1:8080:9090。使用本地8080端口访问容器的9090,我们点击运行后,容器会自动创建并启动。我们可以看到在docker插件中,多了一个eurekaServer的容器,并且启动成功,端口号为9090,为了访问容器中的项目,我们设置使用8080端口访问项目容器9090的。我们使用127.0.0.1:8080访问项目,出现如下页面,证明项目启动成功。到这里我们就基本完成了所有的配置。修改完项目并一键部署后,我们就可以启动项目了,如下图所示,一键启动我们的项目就会运行在docker容器中。如果我们修改项目,使用docker插件启动项目,会发现项目还是修改前的项目,因为我们只是启动了容器,并没有对修改后的项目进行重新打包和生成docker镜像。如果我们想在启动时直接打包启动项目,可以按照下面的步骤进行。我们修改之前创建的Docker镜像的配置。2.在配置启动项中找到Beforelaunch:Activatetoolwindow,这里我们添加一个RunMavenGold。我们在此处的命令行中添加一个命令包。配置完成后保存。以后我们在启动项目的时候,执行mavenpackage命令,它会自动打包我们,生成一个docker镜像文件供项目启动。以后如果我们修改项目,就可以如下图启动了。它会自动打包创建docker镜像并启动项目。如果我们只需要启动项目,到docker插件窗口,启动对应项目的容器即可。环境:jdk1.8及以上。,Maven3.2+参考:https://www.cnblogs.com/hsz-c...https://spring.io/guides/gs/s...原文:https://blog.csdn.net/qq_3597...近期热点文章推荐:1.1000+Java面试题及答案(2022最新版)2.厉害了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!