一键部署应用到远程服务器,IDEA 官方 Docker 插件太顶了!
程序员的成长之路
共 5694字,需浏览 12分钟
· 2022-12-08
程序员的成长之路互联网/程序员/技术/资料共享
关注
首先我们要开启docker的远程连接访问。保证不是docker所在的服务器,也能够远程访问docker。Linux版的docker:1、修改 docker.service 文件,添加监听端口 -H tcp://0.0.0.0:2375
阅读本文大概需要 5.5 分钟。
来自:https://blog.csdn.net/qq_35976271/article/details/100287663
一、 docker开启远程连接访问首先我们要开启docker的远程连接访问。保证不是docker所在的服务器,也能够远程访问docker。Linux版的docker:1、修改 docker.service 文件,添加监听端口 -H tcp://0.0.0.0:2375
vi /usr/lib/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
安装配置idea的docker插件
- 在File --> Settings --> Plugins 在输入框中搜索Docker,选择并安装。安装完成后重启Docker。
创建项目,并配置
一 、 创建项目
我就以一个简单的Eureka项目演示。File–> New -->Project --> Spring Initializr二、 配置项目
1. 修改pom.xml文件,引入docker-maven-plugin插件相关配置. 改配置在标签内:
<!--使用docker-maven-plugin插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<!--将插件绑定在某个phase执行-->
<executions>
<execution>
<id>build-image</id>
<!--将插件绑定在package这个phase上。也就是说,
用户只需执行mvn package ,就会自动执行mvn docker:build-->
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--指定生成的镜像名,这里是我们的项目名-->
<imageName>${project.artifactId}</imageName>
<!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!-- 指定我们项目中Dockerfile文件的路径-->
<dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
<!--指定远程docker 地址-->
<dockerHost>http://127.0.0.1:2375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar包所在的路径 此处配置的即对应项目中target目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2. 配置项目的基本配置。( 这里不是重点,一笔带过)① 修改application.properties,添加项目相关信息。
#项目启动的端口号和IP地址
server.port=9090
eureka.instance.hostname=127.0.0.1
# 是否将其注册到注册中心, 如果不是集群环境,false
eureka.client.register-with-eureka=false
# 是否检索服务,单机情况下为false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
② 找到项目启动类,添加@EnableEurekaServer注解
@EnableEurekaServer@SpringBootApplicationpublic class EurekaserverApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaserverApplication.class, args);
}}
- 添加Dockerfile文件。
FROM java:8
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 9090
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
我们添加了一个VOLUME指向“/ tmp”的内容,因为这是Spring Boot应用程序默认为Tomcat创建工作目录的地方。效果是在“/var/lib/docker”下的主机上创建一个临时文件,并将其链接到“/ tmp”下的容器。对于我们在此处编写的简单应用程序,此步骤是可选的,但如果需要在文件系统中实际编写,则对于其他Spring Boot应用程序可能是必需的。
为了减少Tomcat的启动时间,我们添加了一个指向“/dev/urandom”的系统属性作为熵源。如果您使用Tomcat(或任何其他Web服务器)的“标准”版本,则不需要更新版本的Spring Boot。
maven打包,生成镜像
使用maven打包。我们在pom.xml中配置过,如果我们是用maven的package,那么就会自动使用Dockerfile文件进行构建。 我们从控制台可以看到,已经给我构建了一个和我们项目名相同的镜像文件。我们在docker窗口可以看到,我们的镜像库中多个一个eurekaserver:latest镜像。创建容器,项目部署到docker
我们在docker窗口中,找到我们刚才创建的镜像文件,鼠标右键,选择Create container,我们修改创建容器所需要的配置。在Create Docker Configuration弹窗中修改Container name(容器名称) Bind ports(Ip和端口映射)我在这里添加127.0.0.1:8080:9090. 使用本地8080端口,去访问容器的9090.我们点击Run之后,就会自动创建容器并启动。我们可以看到在docker插件中,多出了一个eurekaServer的容器,并且启动成功,端口号为9090.访问容器中的项目我们在前面设置的是使用8080端口,访问容器9090的项目。我们使用127.0.0.1:8080访问项目,出现如下页面,证明项目启动成功。在这里我们基本上已经完成了所有的配置。修改项目,一键部署
以后,我们启动项目可以按照下图所示,一键启动我们项目就会在docker容器中运行。如果我们修改了项目,在使用在docker插件中启动项目,会发现在启动依然还是修改前的项目,因为我们只是启动了容器,并没有将修改后的项目重新打包并生成docker的images。如果我们想在启动时直接用运行打包并启动项目可以按照下面的操作。- 我们修改在前面我们创建的Docker Images 的配置。
-
https://www.cnblogs.com/hsz-csy/p/9488469.html
-
https://spring.io/guides/gs/spring-boot-docker/
推荐阅读:
手把手教你通过 Docker 部署前后端分离项目(亲测可用)
互联网初中高级大厂面试题(9个G)
内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper......等技术栈!
⬇戳阅读原文领取! 朕已阅
评论
太敢穿了!透视纱裙!性感火辣的身材
绝了呀今天的厂花:吴宣仪1995年1月26日,吴宣仪出生于海南省海口市,中国内地流行乐女歌手、影视演员。2016年2月,吴宣仪随宇宙少女发行首张迷你专辑正式出道。2018年4月,她参加《创造101》综艺选秀,获得第二名,成功加入火箭少女101组合。吴宣仪的颜值一直备受称赞,她的五官立体精致,皮肤白皙
逆锋起笔
0
美女诱惑趴床上性感写真全身照片,太撩人!
美女诱惑图片|美女趴床上照片,床上性感写真,女生全身照片可爱,文末阅读原文有私房写真集哦!不要到处宣扬自己的内心,这世上不止你一个人有故事,也不要到处宣泄自己的痛苦,没有人会感同身受。心中装满着自己的看法与想法的人,永远听不见别人的心声。网红台妹 | 咪啦,甜美又性感的顶级美女模特好甜!这颜值身材,
逆锋起笔
0
堪称最优秀的Docker可视化管理工具——Portainer你真的会用吗?
来源:blog.csdn.net/shark_chili3007/article/details/123366179👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目
小哈学Java
0
多人同时导出 Excel 干崩服务器!新来的阿里大佬给出的解决方案太优雅了!
点击关注公众号,Java 干货及时推送↓推荐阅读:面试辅导,我们出大成果了!来源:juejin.cn/post/7259249904777838629前言 业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,
Java技术栈
1
这五款牛逼的 IDEA 插件,堪称代码质量检查利器!
来源:blog.csdn.net/a745233700?type=blog一、Alibaba Java Coding Guidelines二、CheckStyle:三、PMD四、FindBugs:五、SonarLint:总结随着业务的发展,系统会越来越庞大,原本简单稳定的功能,可能在不断迭代后复杂度
码农突围
0
竞业真太TM恶心了!
看到一个新闻,本周漂亮国的联邦贸易委员会(FTC) 宣布全面禁止所有员工(包括高级管理人员)签署新的竞业禁止协议。对于现有的竞业协议,高级管理人员的现有竞业协议仍然有效,其他员工的现有竞业协议则在规定生效日期后不再强制执行。由于国外的互联网发展的早,很多国内的习惯也是照搬他们的,现在漂亮国
公子龙
2
【第128期】提升编程效率VSCode变量命名插件推荐
概述 在编程的世界里,一个好的变量名不仅能够提升代码的可读性,还能反映出程序员的专业水平。Visual Studio Code(VSCode)作为一个广受欢迎的代码编辑器,拥有丰富的插件生态系统,其中不乏能够帮助我们高效命名变量的工具。今天,我们就来介绍几款VSCode上能够提升变量命名效率的插件
前端微服务
0
被开除了,因为用了Docker。。
将Python客栈设为“星标⭐”第一时间收到最新资讯来源丨经授权转自 古时的风筝(ID:gushidefengzheng)作者丨风筝前几天网上冲浪,看到一位技术管理者发了一个帖子。大意就是:“因为团队里一个程序员跟他反应说开发机内存不够了,请求换一台内存大一点的机器。这位管理者感到很诧异,为什么别人
Python客栈
1