IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

Docker官网

Docker官网:https://www.docker.com/

Docker Hub官网:http://hub.docker.com/

什么是Docker

Docker 是一个开源的容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括 VMs(虚拟机)bare metalOpenStack 集群、云端、数据中心和其他的基础应用平台。容器是完全使用沙箱机制,相互之间不会有任何接口。

为什么使用Docker

  • 可以快速部署应用:Docker容器很轻,启动时间很快,节约开发、测试、部署的时间。

  • 可以在任意环境运行:Docker容器兼容很多平台,可以把应用程序从一个平台迁移到另外一个。

  • 更加高效的利用系统资源:容器内的应用直接运行于宿主机的内核。

  • 一致的运行环境:将环境、依赖等封装到容器内,不会因环境不同而产生差异。

  • 持续集成和部署:镜像可升级、降级、更新、部署。

  • 迁移轻松:一次构建,处处运行,可上传下载到Docker registry。

Docker的基本组成

  • Docker client:客户端,为用户提供一系列可执行命令,用户用这些命令实现跟 docker daemon 交互;
  • Docker daemon:守护进程,一般在宿主主机后台运行,等待接收来自客户端的请求消息;
  • Docker image:镜像,镜像run之后就生成为docker容器;
  • Docker container:容器,一个系统级别的服务,拥有自己的ip和系统目录结构;运行容器前需要本地存在对应的镜像,如果本地不存在该镜像则就去镜像仓库下载。
  • Docker Registry:仓库,是一个集成存储与分发镜像的服务;最常用的是Registry,是官方的Docker Hub。

Docker的基本命令(思维导图)

Docker基本命令

Docker的实际应用

下面我们通过Idea整合Docker的方式,进行打包部署 RuoYi-Vue-Plus开源项目:

关于Nginxredismysql等软件,采用的是传统下载安装包的方式已经安装完成,前端项目已经打包部署完成。

下面仅仅介绍借助Idea集成Docker插件的方式,进行后端服务 镜像的构建、容器的启动等操作;大家也可以使用Docker命令的方式操作进行服务的部署。

关于Docker的安装教程见上述命令!

使用docker --version查看Docker的版本:

查看Docker的版本

下面仅演示后端服务的部署:

Idea整合Docker

在Idea中安装docker插件

Setting ——> Plugins ——> 插件市场搜索Docker

Idea安装Docker插件

配置Docker连接信息

这里采用的是SSH的连接方式,下方若出现Connection successful 连接成功。

通过SSH方式配置连接信息

连接Docker,查看远程Docker里面的信息。

查看远程Docker里面信息

项目准备

拉取RuoYi-Vue-Plus项目,本地启动测试,将mysql脚本导入到服务器mysql数据库中,

修改本地配置文件的数据库连接信息、Redis连接信息配置。

本地启动测试:

运行:MonitorAdminApplication.javaXxlJobAdminApplication.javaRuoYiApplication.java

项目本地启动测试

启动一切正常!!!

准备Dockerfile(Dockerfile项目中已存在)

准备Dockerfile

项目打包准备镜像

在项目的根目录执行命名:mvn clean install进行项目打包。

在这里插入图片描述

首先进入: \RuoYi-Vue-Plus\ruoyi-extend\ruoyi-xxl-job-admin目录,打包ruoyi-xxl-job-admin镜像。

打开Dockerfile文件,点击按钮打包镜像:

构建ruoyi-xxl-job-admin镜像

同上,分别打包镜像ruoyi-monitor-admin、ruoyi-admin。这里不再介绍。

构建镜像,准备启动容器

启动容器

分别启动容器,切换到Log面板,我们可以看到容器启动的日志:

启动容器,查看日志

启动成功后,我们访问前端,检查服务是否正常访问。

后端服务处理请求正常

在控制面板,我们可以进行其他的一些快捷操作,比如进入容器,尝试Docker的基本命令等:
在这里插入图片描述

附:Docker基本命令思维导图获取方式:后台私信【Docker基本命令】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161539.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

D-link未授权访问以及远程代码执行

随便输入一个错误密码,会跳转到页面: /page/login/login.html?errorfail继续访问有效页面漏洞url: /Admin.shtml然后访问管理页面去更改管理密码 直接构造payload访问漏洞url: /cgi-bin/execute_cmd.cgi?cmdid执行命令&#…

JAVA 实现PDF转图片(spire.pdf.free版)

1.引入jar包 导入方法1: 手动引入。将Free Spire.PDF for Java下载到本地,解压,找到lib文件夹下的Spire.PDF.jar文件。在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序: 导入方法2:如果您想通过…

linux 创建git项目并提交到gitee(保姆式教程)

01、git安装与初始化设置 mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ apt install mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ git config --global user.name "用户名" mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ git config --global user.ema…

python脚本监听域名证书过期时间,并将通知消息到钉钉

版本一: 执行脚本带上 --dingtalk-webhook和–domains后指定钉钉token和域名 python3 ssl_spirtime.py --dingtalk-webhook https://oapi.dingtalk.com/robot/send?access_tokenavd345324 --domains www.abc1.com www.abc2.com www.abc3.com脚本如下 #!/usr/bin…

Java配置47-Spring Eureka 未授权访问漏洞修复

文章目录 1. 背景2. 方法2.1 Eureka Server 添加安全组件2.2 Eureka Server 添加参数2.3 重启 Eureka Server2.4 Eureka Server 升级版本2.5 Eureka Client 配置2.6 Eureka Server 添加代码2.7 其他问题 1. 背景 项目组使用的 Spring Boot 比较老,是 1.5.4.RELEASE…

D-Link管理系统默认账号密码

默认口令为 admin:admin 登陆成功 文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。 免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章…

贝叶斯网络:利用变量消除(Variable Elimination)进行推理

贝叶斯网络简介 贝叶斯网络(Bayesian network)也叫贝氏网路、信念网络(belief network)或是有向无环图(DAG)模型,是一种概率图模型。它利用DAG的结构,得到一组随机变量{X1,X2,...,Xn}的条件概率分布&#…

matlab双目标定中基线物理长度获取

在MATLAB进行双目摄像机标定时,通常会获得相机的内参,其中包括像素单位的焦距(focal length)以及物理单位的基线长度(baseline)。对于应用中的深度估计和测量,基线长度的物理单位非常重要,因为它直接影响到深度信息的准确性。有时候,您可能只能获取像素单位的焦距和棋…

如何使用CodeceptJS、Playwright和GitHub Actions构建端到端测试流水线

介绍 端到端测试是软件开发的一个重要方面,因为它确保系统的所有组件都能正确运行。CodeceptJS是一个高效且强大的端到端自动化框架,与Playwright 结合使用时,它成为自动化Web、移动甚至桌面 (Electron.js) 应用程序比较好用的工具。 在本文中…

JavaScript的作用域和作用域链

作用域 ● 作用域(Scoping):我们程序中变量的组织和访问方式。"变量存在在哪里?“或者"我们可以在哪里访问某个变量,以及在哪里不能访问?” ● 词法作用域(Lexical scoping&#xff…

python创建一个简单的flask应用

下面用python在本地和服务器上分别创建一个简单的flask应用: 1.在pc本地 1)pip flask后创建一个简单的脚本flask_demo.py from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return Hello, World!winR进入命令行,…

2.2整式的加减(第1课时)——合并同类项教学及作业设计

【学习目标】 1.理解同类项的概念,并能正确辨别同类项. 2.理解合并同类项的依据是乘法分配律,掌握合并同类项的方法. 知识点归纳: ★合并同类项后,所得的项的系数是___________…