微服务框架 SpringCloud微服务架构 9 初识 Docker 9.1 什么是Docker

news2024/11/23 15:51:18

微服务框架

【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】

SpringCloud微服务架构

文章目录

      • 微服务框架
      • SpringCloud微服务架构
      • 9 初识 Docker
        • 9.1 什么是Docker
          • 9.1.1 项目部署的问题
          • 9.1.2 Docker
          • 9.1.3 总结

9 初识 Docker

9.1 什么是Docker

9.1.1 项目部署的问题

大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:

  • 依赖关系复杂,容易出现兼容性问题
  • 开发、测试、生产环境有差异

在这里插入图片描述

比如这些技术,将来可能都要部署到我们的服务器上,而且大多数服务器都采用Linux 操作系统

这些应用技术在安装到Linux 上之前,都要做一些准备,因为这些应用都会有自己需要的依赖和函数库

在这里插入图片描述

而且每一个应用需要的东西可能还会【一般都会】存在差异

在这里插入图片描述

也可能一样,但是版本不同,因此如此复杂的关系,很容易就产生“不兼容”的问题

在这里插入图片描述

而且不同的环境之前还有差异【炸了】

因此在以前,开发部署的效率非常的低

9.1.2 Docker

【Docker 是如何解决依赖的兼容问题的?】

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 将每个应用放到一个隔离容器去运行,避免互相干扰

在这里插入图片描述

但是,这样的操作仅限于同一个操作系统,因为我们在打包应用时,肯定会基于某个固定的操作系统去打包,

如果一个应用是 Ubuntu 版本的,那么它的依赖和函数库肯定也是Ubuntu 版本的,现在把这个程序打包好扔到Windows 上显然是不能运行的

【所以Docker 又怎么解决这个问题?】

不同环境的操作系统不同,Docker如何解决?先来了解下操作系统结构

在这里插入图片描述

其实所有的Linux 操作系统,它都可以分成下面的情况

在这里插入图片描述

内核与硬件交互,提供操作硬件的指令

系统应用封装内核指令为函数,便于程序员调用

用户程序基于系统函数库实现功能

【那么问题来了, 一个Ubuntu 系统的应用为什么不能在 Windows 系统上运行呢?】

在这里插入图片描述

Ubuntu和CentOS都是基于Linux内核,只是系统应用不同,提供的函数库有差异

现在我有一个Ubuntu 和 一个CentOS

在这里插入图片描述

现在我们把Ubuntu 上的例如MySQL 应用尝试迁移到CentOS 上运行

在这里插入图片描述

如果函数库不存在,那就报错了【这就是应用不能跨系统调用的原因】

【那么针对这样的问题,Docker 如何解决?】

Docker如何解决不同系统环境的问题?

  • Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包
  • Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行

在这里插入图片描述

【这样就不受系统应用使用的操作系统类型影响了】

u1s1 ,这PPT 做得真漂亮

在这里插入图片描述

【Docker如何解决大型项目依赖关系复杂,不同组件依赖的兼容性问题?】

  • Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
  • Docker应用运行在容器中,使用沙箱机制,相互隔离

【Docker如何解决开发、测试、生产环境有差异的问题】

  • Docker镜像中包含完整运行环境,包括系统函数库,仅依赖系统的Linux内核,因此可以在任意Linux操作系统上运行
9.1.3 总结

Docker是一个快速交付应用、运行应用的技术:

  1. 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统

  2. 运行时利用沙箱机制形成隔离容器,各个应用互不干扰

  3. 启动、移除都可以通过一行命令完成,方便快捷

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

StarkNet新手指南

Rollup代表了以太坊未来扩展计划的基础。 StarkNet是一个无需许可的第2层(L2)扩展网络,是“四大”早期主流rollup之一。本篇Bankless文章将向你展示,对于一个新手来说,如何畅游StarkNet生态系统! StarkNe…

【JUC】循环屏障CyclicBarrier详解

前言 jdk中提供了许多的并发工具类,大家可能比较熟悉的有CountDownLatch,主要用来阻塞一个线程运行,直到其他线程运行完毕。而jdk还有一个功能类似并发工具类CyclicBarrier,你知道它的作用吗?和CountDownLatch有什么区…

QA特辑|重点重点!模型开发与部署的标准答案!

11月24日,顶象业务安全大讲堂系列课程之《智能模型平台》正式开讲,顶象人工智能总监无常从从模型平台的现状与需求出发,带大家了解了模型平台的开发环境与部署环境,并且就顶象的Xintell 模型平台 为大家做了演示。 直播也吸引了不…

【LeetCode每日一题】——38.外观数列

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 字符串 二【题目难度】 中等 三【题目编号】 38.外观数列 四【题目描述】 给定一个正整数 n …

mybatispuls 批处理 rewriteBatchedStatements=true

mybatis-plus原生的批处理 this.saveBatch(list); 实际是一条条处理,特慢,造几万行数据得几分钟以上。 如果加上配置,就十几秒搞定五万行数据入库 &rewriteBatchedStatementstrue

建议收藏——等级保护备案整体流程

等级保护的流程大致为定级—备案—初测—整改—复测—监督检查,备案需先定级。整体备案流程是向属地公安机关提交备案资料,需要先线上提交备案材料。线上审核通过后,再线下提交备案材料。具体如下: 1,先线上提交资料审…

WPF 3D MeshGeometry3D类的Positions和TriangleIndices属性研究

MeshGeometry3D 类&#xff0c;用于生成三维形状的三角形基元&#xff1b; 类的参考在此&#xff1b; https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.media.media3d.meshgeometry3d?viewwindowsdesktop-7.0 写在xaml语法里面是<MeshGeometry3D Positions.…

【Android App】低功耗蓝牙中扫描BLE设备的讲解及实战(附源码和演示 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、扫描BLE设备 传统蓝牙虽然历史悠久&#xff0c;但它的缺陷也很明显&#xff0c;包括但不限于下列几点&#xff1a; &#xff08;1&#xff09;需要两部设备配对之后才能继续连接&#xff0c;而且连接速度也慢&#xff1b; &a…

数组与字符串总结

一、数组 基本概念 特点&#xff1a;顺序存储&#xff0c;每个元素大小&#xff0c;类型相同&#xff0c;元素有限 高维数组可以转化为一维数组 高维数组存放次序&#xff1a;按行优先或者按列优先 按行优先的寻址公式&#xff1a; 二维数组a[m] [n]: Loc(a[i] [j]) Loc…

Ajax axios JSON Fastjson

1、概述 AJAX (Asynchronous JavaScript And XML) &#xff1a;异步的JavaScript和XML AJAX工作流程如下: 1.1、作用 AJAX作用有以下两方面&#xff1a; 1&#xff09;与服务器进行数据交换&#xff1a;通过AJAX可以给服务器发送请求&#xff0c;服务器将数据直接响应回浏览…

算法训练Day36 贪心算法系列 - 重叠区间问题 | LeetCode435. 无重叠区间;763. 划字母区间;56.合并区间

前言&#xff1a; 算法训练系列是做《代码随想录》一刷&#xff0c;个人的学习笔记和详细的解题思路&#xff0c;总共会有60篇博客来记录&#xff0c;计划用60天的时间刷完。 内容包括了面试常见的10类题目&#xff0c;分别是&#xff1a;数组&#xff0c;链表&#xff0c;哈…

【Linux】快捷键

Ctrl C&#xff1a;终止当前命令

星环科技数据中台解决方案,助力某政府机构建设新型智慧城市

客户背景 城市&#xff0c;是人们工作生活的栖息地&#xff0c;也是展示发展成果的全景图。某政府机构不仅注重城市“中枢大脑”的建设&#xff0c;而且兼顾“神经末梢”的需求&#xff0c;既有技术进步的“面子”&#xff0c;更有民生保障的“里子”。站在新的起点上&#xff…

Linux计划任务管理

一&#xff0c;计划任务管理&#xff1a; 任务管理很宽泛&#xff0c;这里是指的计划任务管理&#xff0c;在指定的时间执行。 1&#xff0c;at命令 &#xff1a; 由atd守护进程来执行&#xff0c;atd进程会定期检查系统上的 /var/spool/at 目录&#xff0c;获取at命令写入的任…

如何建立你的财务体系?

天下人都想同时实现财务管理民主自由&#xff0c;换言之一下&#xff0c;你躺在毛里求斯的海滩上&#xff0c;吹着南风&#xff0c;晒着月亮&#xff0c;还有总收入源源不绝的流向&#xff0c;阿涅尔&#xff1f; 那么&#xff0c;怎样同时实现&#xff1f;坚信我们都知道投资…

准备大半年,面试频繁受挫,Java岗面试为何越来越难?

作为一名优秀的程序员&#xff0c;技术面试都是不可避免的一个环节&#xff0c;一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 如果你参加过一些大厂面试&#xff0c;肯定会遇到一些这样的问题&#xff1a; 1、看你项目都用的框架&#xff0c;熟悉…

什么是链动2+1模式?链动2+1模式玩法解析

链动21模式玩法解析 模式框架&#xff1a;代理、老板 奖励机制&#xff1a;平级奖、见点奖、平级奖、帮扶基金、分红奖 商业模式玩法&#xff1a;每一个代理晋升为老板的同时&#xff0c;都需要给上级代理留下“两个原始种子用户”&#xff0c;咱们这里就俗称“感恩机制”。…

双十二有哪些数码好物值得入手、双十二必买数码好物清单

双十二马上就到了&#xff0c;相信很多小伙伴已经按耐不住想要入手了吧&#xff1f;但如果目前还没什么头绪&#xff0c;不知道买什么的话&#xff0c;现在就不妨来抄一下作业吧&#xff01;近期我整理了一份双十二数码好物清单&#xff0c;都是我从用户评价、产品亮点、折扣力…

python中base64编码

1. base64编码简介 用记事本打开exe、jpg、pdf这些文件时&#xff0c;我们都会看到一大堆乱码&#xff0c;因为二进制文件包含很多无法显示和打印的字符&#xff0c;所以&#xff0c;如果要让记事本这样的文本处理软件能处理二进制数据&#xff0c;就需要一个二进制到字符串的…

Perl与JS的对比分析(数组、哈希)

一、数组 可以对数组进行增删&#xff0c;插入。与JS不同的是这些函数都是全局的&#xff0c;JS则是挂在Array.prototype上。 1&#xff0c;对数组尾部的操作pop&#xff08;删除最后的元素&#xff09;、push&#xff08;在尾部添加&#xff09; 1 2 3 goods qw/pen penci…