当前位置: 首页 > news >正文

IDEA集成Docker实现快捷部署

本文已收录于专栏
《运维》

目录

  • 背景介绍
  • 优势特点
  • 操作步骤
    • 一、修改Docker配置
    • 二、配置Docker插件
    • 三、编写Maven插件
    • 四、构建Docker镜像
    • 五、创建Docker容器
  • 总结提升

背景介绍

  在我们手动通过Docker部署项目的时候,都是通过把打包好的jar包放到服务器上并且在服务器上编写对应的DockerFile,然后在通过docker bulid命令根据jar包和Docker File生成对应的镜像,然后通过docker start或者docker run运行镜像产生容器来提供服务。

优势特点

IDEA集成Docker快捷部署的好处:

  1. 提高开发效率:通过IDEA集成Docker,可以在开发过程中直接部署和调试Docker容器,无需手动操作Docker命令行工具,节省时间并提高开发效率。

  2. 便捷调试:快捷部署功能可以帮助开发人员快速部署运行容器,并在IDEA中使用调试器进行调试,方便定位和解决问题。

  3. 一体化开发环境:集成Docker的快捷部署使得开发人员可以在IDEA中完成代码编写、构建、部署和调试等操作,提供了一体化的开发环境,减少了切换工具之间的复杂性。

  4. 持续集成部署:可以结合CI/CD工具,实现持续集成和部署,通过IDEA集成Docker进行快速部署,更方便实现自动化部署流程。

  5. 方便分享和共享:通过快捷部署功能,可以方便地将开发环境打包成镜像并分享给团队成员,提高团队协作效率。

操作步骤

一、修改Docker配置

  1. 修改dcoker.service文件开启远程访问
vim /lib/systemd/system/docker.service
将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
替换为
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

在这里插入图片描述

  1. 重启Docker服务
systemctl daemon-reload
systemctl restart docker
  1. 服务器防火墙开启2375端口
firewall-cmd --add-port=2375/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
  1. 测试是否可以远程连接
    在控制台输入:curl http://127.0.0.1:2375/version,会显示下面的信息
    在这里插入图片描述
    在自己电脑上的浏览器中输入服务器的ip地址+端口号+/version
    在这里插入图片描述
    如果浏览器上不能访问,那么需要在服务器的管理控制台添加安全组规则,我的服务器是华为云的,添加开放2375端口。然后在访问浏览器查看是否访问成功。
    在这里插入图片描述

二、配置Docker插件

  1. 点击File -> Settring连接docker服务,显示Connection successful表示连接成功
    在这里插入图片描述
  2. 配置成功之后在下方的Services中可以看到Docker中的镜像和容器
    在这里插入图片描述

三、编写Maven插件

  1. 修改项目的pom.xml文件
  <properties><!--docker镜像的前缀--><docker.image.prefix>docker</docker.image.prefix></properties>
<plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.0.0</version><configuration><!--远程Docker的地址--><dockerHost>http://XXX.XXX.XXX.XXX:2375</dockerHost><!--镜像名称,前缀/项目名--><imageName>${docker.image.prefix}/${project.artifactId}</imageName><!--DockerFile所在的位置--><dockerDirectory>src/main/java/com/example/dockerdemo/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin>
  1. 新建docker文件夹,将编写好的Dockerfile放到这个文件夹
    在这里插入图片描述

四、构建Docker镜像

  1. 一次使用以下命令构建镜像
clean
package
docker:build

在这里插入图片描述

  1. 根据构建的日志信息查看是否构建成功
    在这里插入图片描述
  2. 可以点开Service中的Docker查看已经构建好的镜像
    在这里插入图片描述

五、创建Docker容器

  1. Docker控制台选中镜像右键,点击创建镜像,填写参数,点击run
    在这里插入图片描述
    在这里插入图片描述

  2. 可以通过启动的日志信息来判断是否启动成功
    在这里插入图片描述

  3. 启动成功之后可以在Containers
    在这里插入图片描述

总结提升

  IDEA集成Docker的快捷部署为开发人员提供了更加便捷和高效的开发环境,有助于提升团队的开发效率和协作能力。通过灵活利用这一功能,开发人员可以更快速地开发、调试和部署应用程序,从而提高开发工作的效率和质量。


🎯 此文章对你有用的话记得留言+点赞+收藏哦🎯

相关文章:

IDEA集成Docker实现快捷部署

本文已收录于专栏 《运维》 目录 背景介绍优势特点操作步骤一、修改Docker配置二、配置Docker插件三、编写Maven插件四、构建Docker镜像五、创建Docker容器 总结提升 背景介绍 在我们手动通过Docker部署项目的时候&#xff0c;都是通过把打包好的jar包放到服务器上并且在服务器…...

五十四、openlayers官网示例LineString Arrows解析——在地图上绘制箭头

官网demo地址&#xff1a; LineString Arrows 这篇介绍了在地图上绘制箭头。 创建一个矢量数据源&#xff0c;将其绑定为draw的数据源并展示在矢量图层上。 const source new VectorSource();const vector new VectorLayer({source: source,style: styleFunction,});map.ad…...

内核学习——3、自旋锁的作用及其实现

作用&#xff1a; 保护一段临界区的操作时独占的&#xff0c;不能由其他cpu或者线程同时访问破坏数据结构多核系统SMP&#xff1a; 主要考虑一个cpu进入临界区之后&#xff0c;其他CPU不能再去进入这个临界代码区单核系统&#xff1a; 不能被其他进程抢占单核系统自旋锁实现&am…...

恒昌公益第五所“云杉校园”于湖南怀化正式揭牌

在中国近代史上湖南无疑是不可忽视的存在&#xff0c;在“敢为天下先”的湖湘文化熏陶下更是涌现了无数改变国家命运的人物。而作为推动民族复兴与社会进步的关键支柱&#xff0c;重视教育的传统起到的作用功不可没。在迈向中国式现代化的当下&#xff0c;积极推动优质教育资源…...

番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算

前言:Hello大家好,我是小哥谈。YOLOv8是ultralytics公司在2023年1月10号开源的,是YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。它是一个SOTA模型,建立在以前YOLO版本的成功基础上,并引入了新的功能和改…...

【React】useState 的原理

useState 是 React Hooks 中的一个核心函数,用于在函数组件中添加和管理状态。以下是 useState 的原理及其工作方式的详细解释: 1. 基本概念 useState 允许你在函数组件中添加 state。它接受一个参数,这个参数是 state 的初始值。useState 返回一个包含两个元素的数组: 第…...

从二元一次方程组到二阶行列式再到克拉默法则

目录 引言1 二元一次方程组什么是二元一次方程组&#xff1f;解法概述示例1. 操作步骤2. 消元法 2 二阶行列式引入行列式行列式定义示例计算 3 克拉默法则什么是克拉默法则&#xff1f;克拉默法则公式使用克拉默法则求解 4 总结 引言 在数学中&#xff0c;线性代数提供了一套强…...

示例:WPF中绑定枚举到ComboBox想显示成中文或自定义名称如何实现

一、目的&#xff1a;在开发过程中绑定的枚举不想显示成英文字段怎么办&#xff0c;这里通过TypeConverter的方式来实现绑定的枚举从定义的特性中读取 二、实现 首先定义如下枚举 [TypeConverter(typeof(DisplayEnumConverter))]public enum MyEnum{[Display(Name "无&q…...

嵌入式系统软件架构设计方法

1.嵌入式系统软件架构设计的目的 嵌入式系统软件架构是开发大型嵌入式系统密集型软件贯穿始终的关键桥梁&#xff0c;同时软件架构也是软件开发的基础。架构设计的目的是&#xff1a; 保证应用的代码逻辑清晰&#xff0c;避免重复的设计&#xff1b;实现软件的可移植性&#…...

【面试题】风险评估和应急响应的工作流程

风险评估和应急响应是网络安全管理中两个重要的环节。下面分别介绍它们的工作流程&#xff1a; 一、风险评估工作流程&#xff1a; 1.确定评估范围&#xff1a;明确需要评估的信息系统或资产的范围。 2.资产识别&#xff1a;识别并列出所有需要评估的资产&#xff0c;包括硬件…...

Vue70-路由的几个注意点

一、路由组件和一般组件 1-1、一般组件 1-2、路由组件 不用写组件标签。靠路由规则匹配出来&#xff0c;由路由器渲染出来的组件。 1-3、注意点1 一般组件和路由组件&#xff0c;一般放在不同的文件夹&#xff0c;便于管理。 一般组件放在components文件夹下。 1-4、注意点…...

Aidlux 1.4 部署Nextcloud 2024.6实录 没成功

Aidux阉割版Debain10&#xff0c;坑很多&#xff0c;比如找不到实际的系统日志&#xff0c;有知道的大神吗&#xff1f; 1 Apache2安装 # 测试Apache2 sudo apt update && sudo apt upgrade sudo apt install apache2 -y80端口疑似被禁止只能换端口 rootlocalhost:/…...

网络与协议安全复习 - 电子邮件安全

文章目录 PGP(Pretty Good Privacy)功能 S/MIME(Secure/Multipurpose Internet Mail Extensions)DKIM(Domain Keys Identified Mail) PGP(Pretty Good Privacy) 使用符号&#xff1a; Ks&#xff1a;会话密钥、KRa&#xff1a;A 的私钥、KUa&#xff1a;A 的公钥、EP&#xff…...

Python里的序列化是什么?

在Python中&#xff0c;序列化&#xff08;serialization&#xff09;是一个过程&#xff0c;它可以将数据结构或对象状态转换为可以存储或传输的形式。通常&#xff0c;这意味着将数据结构或对象转换为字节流&#xff0c;以便可以将其写入文件、发送到网络&#xff0c;或用于其…...

自动抓取服务器功耗

以下脚本为linux系统内通过ipmitool工具自动抓取服务器当前功耗&#xff0c;每隔5分钟抓取一次&#xff0c;累计抓取20次 脚本如下&#xff1a; #!/bin/bashcurrent_dirpwd node_list${current_dir}/nodelistbmc #BMC IP usernameAdministrator #BMC用…...

服务器接收苹果订阅通知

我们的服务器需要提供一个URL来接收苹果的通知&#xff0c;要使用HTTPS。 苹果会对这个URL发送HTTP POST请求&#xff0c;body是JSON格式&#xff0c;包含了通知的内容。 我们服务器处理成功后&#xff0c;应向苹果返回HTTP 200。若出现问题&#xff0c;需要苹果重新发送通知…...

2024年旅游与经济发展国际会议(ICTED 2024)

2024年旅游与经济发展国际会议&#xff08;ICTED 2024&#xff09; 2024 International Conference on Tourism and Economic Development 【重要信息】 大会地点&#xff1a;青岛 大会官网&#xff1a;http://www.icicted.com 投稿邮箱&#xff1a;icictedsub-conf.com 【注意…...

【NLP练习】Transformer实战-单词预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 任务&#xff1a;自定义输入一段英文文本进行预测 一、定义模型 from tempfile import TemporaryDirectory from typing import Tuple from torch import nn…...

使用Lua脚本保证原子性的Redis分布式锁实现

这是原来的代码&#xff1a; Override public void unlock() {// 获取线程标示String threadId ID_PREFIX Thread.currentThread().getId();// 判断标示是否一致String id stringRedisTemplate.opsForValue().get(KEY_PREFIX name);if (threadId.equals(id)) {// 释放锁st…...

什么是nginx到底怎么配置,什么是网关到底怎么配置?

那使用upstream里面具体哪个服务器是怎么决定和区分的呢? AI生成 在Nginx中,使用upstream里面具体哪个服务器是通过负载均衡算法来决定的。upstream块定义了一组服务器,Nginx会根据配置的负载均衡算法来选择一个服务器来处理当前的请求。常见的负载均衡算法包括轮询(round-…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...