热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一键将应用部署至远程服务器,体验超乎想象的便捷与高效

该插件作为IDEA的内置功能,用户可以直接启用,无需额外安装。通过简单的配置,即可实现应用的一键部署至远程服务器,极大地提升了开发效率和便捷性。插件支持镜像管理和容器管理,允许用户与容器进行交互,并且兼容DockerCompose,适用于复杂的多容器应用部署。总结部分详细介绍了插件的使用方法和优势,附带的参考资料和项目源码地址为用户提供更多学习和实践资源。

目录

插件启用

#镜像管理

#容器管理

与容器交互

#Docker Compose 支持

#总结

#参考资料

#项目源码地址



 


插件启用


  • 由于该插件为IDEA内置插件,直接在插件设置中启用就好了;


  • 由于我们的Docker环境部署在远程服务器上,还需要配置下Docker的连接信息,在Docker设置里配置即可,看到连接成功提示后就表示配置正确了;


  • 接下来打开IDEA底部的Services面板,双击Docker图标进行连接,连接成功后就可以对远程服务器上的Docker容器和镜像进行管理了。


#镜像管理


  • 点击Images按钮,输入需要下载的镜像名称和版本号就可以下载镜像了,这里IDEA还支持自动提示,实在太贴心了!

 

 


  • 右键指定镜像打开菜单,我们还可以对其进行创建容器、查看、删除等常规操作;


  • 当然我们还可以使用Dockerfile来构建自己的镜像,这里以我的mall-tinyopen in new window 脚手架项目为例,首先准备好Dockerfile脚本;

# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD ./mall-tiny-1.0.0-SNAPSHOT.jar /mall-tiny-1.0.0-SNAPSHOT.jar
# 声明服务运行在8080端口
EXPOSE 8080
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-1.0.0-SNAPSHOT.jar"]
# 指定维护者的名字
MAINTAINER macrozheng

 


  • 然后打开Dockfile文件,点击左侧按钮选择创建新的运行配置;


  • 接下来选择我们配置好的远程Docker服务,配置好应用打包目录及镜像名称;

 


  • 然后选择打包镜像,控制台将输出如下日志,jar包会直接上传到远程服务器并打包成镜像。


#容器管理


  • 右键镜像打开菜单,还可以直接创建容器;

 


  • 由于mall-tiny项目需要用到mysql和redis服务,我们可以先启动它们;


  • 然后修改创建容器的配置,主要就是一些之前使用docker run命令的指定的一些配置;


  • 大家直接对照下之前使用的docker run命令,大概就能知道这些配置的作用了;

docker run -p 8080:8080 --name mall-tiny \
--link mysql:db \
--link redis:redis \
-e 'spring.profiles.active'=prod \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny/logs:/var/logs \
-d mall-tiny/mall-tiny:1.0.0-SNAPSHOT

1
2
3
4
5
6
7


  • 运行过程中可以直接在Log标签中查看容器的运行日志,这确实很方便!


与容器交互


  • 通过容器面板我们可以查看到很多容器内部信息,比如查看环境变量;


  • 还可以查看容器的端口映射配置;


  • 还可以查看之前通过docker inspect命令获取的信息,比如查看容器运行的IP地址;

 


  • 还可以直接进入容器内部去执行命令,还记得之前使用的docker exec -it命令么。


#Docker Compose 支持


  • 使用该插件也可以通过Docker Compose来部署应用,首先创建docker-compose.yml文件,由于mysql容器没有使用Docker Compose来创建,这里改用IP来访问;

version: '3'
services:redis:image: redis:5container_name: redis-tinycommand: redis-server --appendonly yesvolumes:- /mydata/redis-tiny/data:/data #数据文件挂载ports:- 6379:6379mall-tiny:image: mall-tiny/mall-tiny:1.0.0-SNAPSHOTcontainer_name: mall-tinylinks:- redis:redisdepends_on:- redisports:- 8080:8080environment:- 'spring.profiles.active=prod'- 'spring.datasource.url=jdbc:mysql://192.168.3.105:3306/mall_tiny?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false'- 'spring.redis.host=redis'volumes:- /etc/localtime:/etc/localtime- /mydata/app/mall-tiny/logs:/var/logs


  • 然后直接点击docker-compose.yml文件箭头即可将应用部署到远程服务器,确实很方便!


  • 部署完成后即可访问项目的Swagger页面,访问地址:http://192.168.3.105:8080/swagger-ui/


#总结

今天体验了一把IDEA的官方Docker插件,不使用命令行就可以实现远程Docker镜像与容器的管理,还支持Docker Compose部署,功能确实很强大!在平时开发过程中,使用这款插件来打包、部署、运行SpringBoot应用确实很方便,感兴趣的小伙伴可以尝试下它!


#参考资料

官方文档:https://www.jetbrains.com/help/idea/docker.html


#项目源码地址

https://github.com/macrozheng/mall-tiny

 

 


推荐阅读
  • 优化局域网SSH连接延迟问题的解决方案
    本文介绍了解决局域网内SSH连接到服务器时出现长时间等待问题的方法。通过调整配置和优化网络设置,可以显著缩短SSH连接的时间。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 创建项目:Visual Studio Online 入门指南
    本文介绍如何使用微软的 Visual Studio Online(VSO)创建和管理开发项目。作为一款基于云计算的开发平台,VSO 提供了丰富的工具和服务,简化了项目的配置和部署流程。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文介绍了ArcXML配置文件的分类及其在不同服务中的应用,详细解释了地图配置文件的结构和功能,包括其在Image Service、Feature Service以及ArcMap Server中的使用方法。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 本文介绍如何通过SSH协议使用Xshell远程连接到Ubuntu系统。为了实现这一目标,需要确保Ubuntu系统已安装并配置好SSH服务器,并保证网络连通性。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 随着Redis功能的不断增强和稳定性提升,其应用范围日益广泛,成为软件开发人员不可或缺的技能之一。本文将深入探讨Redis集群的部署与优化,包括主从备份机制、哨兵模式以及集群功能,帮助读者全面理解并掌握Redis集群的应用。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
author-avatar
手机用户2602906305_849
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有