虚拟机和Docker有什么区别?

news2024/12/23 14:04:43

虚拟机

对于虚拟机,抽象层或抽象软件成为管理程序。管理程序就是帮助虚拟机模拟物理计算机的东西。在管理程序下面,我们有些硬件。管理程序管理单个物理主机上不同虚拟机之间的资源分配。管理程序管理单个物理主机上不同虚拟机之间的资源分配。也就是管理程序上有很多个虚拟机,每个虚拟机都运行自己的操作系统,并有自己的虚拟硬件。比如虚拟CPU虚拟存储之类的东西。

管理程序是负责创建,管理和运行这些虚拟机的软件。管理程序有两种类型:

  • 裸机管理程序:直接在主机硬件上运行,在那台电脑上
  • 托管管理程序:管理程序在现有操作系统上运行

虚拟组件,是虚拟机的仿真组件,虚拟cpu,虚拟内存,虚拟存储,虚拟网络接口,这些组件显示给客户机操作系统,就好像他是真正的硬件一样。管理程序负责管理这些虚拟资源并将其分配给每个虚拟机。每个虚拟机中可以运行单个操作系统,使得用户可以在一个物理机上运行多个操作系统和应用程序。

Docker

Docker是一个使用容器化技术的开源平台,他允许开发人员将应用程序以及其依赖打包到轻量级,可移植的容器中。Docker容器对操作系统进行虚拟化,而不是像找个虚拟机管理程序那样对底层硬件进行虚拟化。因此每个独立的容器只包括应用程序及其库和依赖项。

我们先了解Docker引擎,这是管理Docker容器生命周期的核心软件,是为创建,运行和编排容器提供基础设施之类的事情。Docker引擎与主机内核交互,以分配资源并强制容器之间的隔离。主要通过两件事情实现的:一种叫做cgroups或control groups的东西,他们在进程之间分配资源。还有一种叫做名称空间的东西,名称空间限制容器对系统上其他资源的访问和可见性,从而确保容器都有自己的隔离环境。

还有docker镜像,docker镜像是轻量的、独立的、可执行的包,包含了有哪些一个软件所需的一切,包括软件的代码,运行时,系统工具,库以及需要的任何设置。Docker镜像是使用Docker文件构成的,Docker文件是非常简单的文档,提供了创建镜像的说明。

还有容器本身,这是docker引擎中运行的镜像的实例,每个容器都是一个独立的,自给自足的环境,只包括必要的组件,用于运行特定的应用程序,可以快速启动,停止和重启。 

怎么选择?

虚拟机

1、各种操作系统,虚拟机可以运行不同的os,所以我们可以在一个vm运行win,另一个运行linux,都在同一个硬件上。当你跨平台测试应用的时候就很方便。

2、隔离,两种都提供了隔离,但是虚拟机中应为每个都运行在独立的内核和os上,所以基本上都是内置的。

3、遗留问题。虚拟机非常适合运行遗留应用程序,依赖于可能与主机操作系统或其他容器不兼容的特定操作系统版本或者配置的容器。因此,你可以为遗留的应用程序设计一个完美的环境,而不必对其进行更改。

Docker

1、微服务。Docker容器的轻量级特性,他的快速启动时间以及打包和分发依赖关系的能力,使其成为管理基于微服务的应用程序的理想选择

2、速度。快速开发和部署使用Docker容器的能力,因为我们可以快速构建,部署和扩展这些容器,使得非常适合敏捷开发实践和持续继承、持续部署,CI/CD管道。

3、资源效率,容器共享相同的主机内核,并且占用的空间比虚拟机小得多,运行更多的容器更小的开销在同一硬件上运行。

总结

因此在docker和vm之间选择,本质上需要考虑应用程序和基础设施的特定需求。在混合环境中国使用两种技术是很常见的,遗留引用可能vm上运行,微服务在docker运行,不是非此即彼的,虚拟化技术已经改变了我们部署和管理应用的方式

 

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

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

相关文章

微信小程序学习实录3(环境部署、百度地图微信小程序、单击更换图标、弹窗信息、导航、支持腾讯百度高德地图调起)

百度地图微信小程序 一、环境部署1.need to be declared in the requiredPrivateInfos2.api.map.baidu.com 不在以下 request 合法域名3.width and heigth of marker id 9 are required 二、核心代码(一)逻辑层index.js(二)渲染层…

vue diff算法与虚拟dom知识整理(2) snabbdom简介并搭建开发环境

snabbdom算是diff算法 和 虚拟dom 的一个鼻租了 vue源码借鉴了snabbdom 这个单词翻译出来叫速度 命名还是用了点心的 后面是 dom 这个 我们大概去猜作者的意思 大概想表示的就是 一个比较快的dom操作 snabbdom的get地址如下 https://github.com/snabbdom/snabbdom 这里的简…

「OceanBase 4.1 体验」|快速安装部署[OBD方式]

文章目录 一、Oceanbase数据库简介1.1 核心特性1.2 系统架构1.2.1 存储层1.2.2 复制层1.2.3 均衡层1.2.4 事务层1.2.4.1 原子性1.2.4.2 隔离性 1.2.5 SQL 层1.2.5.1 SQL 层组件1.2.5.2 多种计划 1.2.6 接入层 二、OceanBase 数据库社区版部署2.1 部署方式2.2 基础环境配置2.3 通…

【华为OD机试真题】信号发射和接收(javaC++python)100%通过率 超详细代码注释 代码深度解读

信号发射和接收 知识点数组栈 单调栈时间限制: 1s 空间限制: 256MB 限定语言:不限 题目描述: 有一个二维的天线矩阵,每根天线可以向其他天线发射信号也能接收其他天线的信号,为了简化起见,我们约定每根天线只能向东和向南发射信号&#xf…

【ROS仿真实战】获取机器人在gazebo位置真值的三种方法(三)

文章目录 前言一. 使用ROS tf库二、 使用Gazebo Model Plugin三、 使用libgazebo_ros_p3d插件四、总结 前言 在ROS和Gazebo中,获取机器人的位置信息通常通过ROS消息传递进行。在这篇文章中,我们将介绍三种获取机器人在Gazebo中位置真值的方法&#xff1…

CTF ASCII码 密码解密题 简单

1. 题目 这次的CTF题目就是一张图片如下,并且说有几个蛋被打乱过。明显是一个密码学的解码题。 2. 解题思路 左边表格给出10种颜色,特别是第二列给出了数字0,种种迹象都指向了10进制。每一个蛋都有三种颜色,代表每个蛋都是三位…

【GORM框架】一文学会用gorm实现对单表的增删改查操作

博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。博主主页: 是瑶瑶子啦所属专栏: GORM框架学习 近期目标:写好专栏的每一篇文章 文章目录 一、…

M1 Mac配置JAVA环境

1、下载JDK 目前JDK有Oracle的JDK还有zulu的Open JDK可供选择,因为需要JAVA1.8所以下文以zulu的JDK为例。 Zulu官网:https://www.azul.com/downloads/?packagejdk 选择所需的JDK版本(注意选择ARM架构)> 下载.dmg包 > 安装 …

DAY 47 Ngnix优化与防盗链

Ngnix优化主要有两种,一种是配置上的优化,一种是内核上的优化 隐藏响应头中的版本号 方法一:curl命令 网页查看 隐藏版本信息 修改nginx的运行用户和组 方法一:在编译安装时,指定运行用户和组 [root nginx-1.12.2]#…

【英语】100个句子记完7000个雅思单词

其实主要的7000词其实是在主题归纳里面,不过过一遍100个句子也挺好的,反正也不多。 文章目录 Sentence 01Sentence 02Sentence 03Sentence 04Sentence 05Sentence 06Sentence 07Sentence 08Sentence 09Sentence 10Sentence 11Sentence 12Sentence 13Sent…

Linux常用的压缩、解压缩以及scp远程传输命令的使用

Linux常用的压缩、解压缩以及scp远程传输命令的使用 1.压缩命令2 解压命令3. 大文件压缩分割为多个压缩文件4. 远程传输命令scp4.1 将本地文件复制到远程主机目录4.2 将本地目录复制到远程主机目录4.3 将远程主机的文件复制到本机4.4 复制远程主机目录到本机 1.压缩命令 tar -…

Packet Tracer - 综合技能练习(配置新交换机的初始设置、SSH 和端口安全)

Packet Tracer - 综合技能练习 地址分配表 设备 接口 IP 地址 子网掩码 S1 VLAN 1 10.10.10.2 255.255.255.0 PC1 NIC 10.10.10.10 255.255.255.0 PC2 NIC 10.10.10.11 255.255.255.0 场景 网络管理员要求您配置新交换机。 在本练习中,您将使用一…

二分搜索算法通解框架

文章介绍了二分搜索最常见的几个场景的使用:寻找一个数、寻找左侧边界以及寻找右侧边界。阅读本文只需读者了解二分搜索的使用限制和基本原理即可。 我相信,友好的讨论交流会让彼此快速进步!文章难免有疏漏之处,十分欢迎大家在评…

密码学【java】初探究加密方式之对称加密

文章目录 一 常见加密方式二 对称加密2.1 Cipher类简介2.2 Base算法2.3 补充:Byte&bit2.4 DES加密演示2.5 DES解密2.6 补充:对于IDEA控制台乱码的解决方法2.7 AES加密解密2.8 补充: toString()与new String ()用法区别2.9 加密模式2.9.1 …

MySQL学习笔记第六天

第06章多表查询 5. 7种SQL JOINS的实现 A是员工表,B是部门表。 5.7.1 代码实现 #8. UNION 和 UNION ALL的使用 # UNION:会执行去重操作 # UNION ALL:不会执行去重操作,效率优于前者,开发中优先使用 #结论:如果明确…

【Java入门合集】第二章Java语言基础(四——第二章结束)

【Java入门合集】第二章Java语言基础(四——第二章结束) 博主:命运之光 专栏:JAVA入门 学习目标 掌握变量、常量、表达式的概念,数据类型及变量的定义方法; 掌握常用运算符的使用; 掌握程序的顺…

【LeetCode股票买卖系列:188. 买卖股票的最佳时机 IV | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Hibernate(一)——入门

在之前经常用到操作数据库的框架是Mybatis或者Mybatis-plus。 Hibernate在項目中用过,但没有深入的了解过,所以这次趁着假期把这个框架了解一下。 目录 概念Hibernate和Mybatis的区别Hibernate使用依赖引入Hibernate配置文件XML配置文件详解properties文…

2023 年 五一杯 B 题过程 + 代码(第一问)

文章目录 第一题问题分析PageRank 算法(可跳过)PageRank 算法修正权重系数 结果各城市链出与链入链出 权重链入 权重 PageRank 算法结果代码 第一题 问题分析 从收货量、发货量、快递数量增长/减少趋势、相关性等多角度考虑,建立数学模型&…

如何使用git更新别人的代码

文章目录 如何使用git更新别人的代码问题说明省流问题示例操作步骤总结总结 如何使用git更新别人的代码 问题说明 当自己git clone别人的代码之后,代码一直停留到本地电脑上,而你就跑了一次程序就搁置了。 后来有一天你想再次运行该代码,但…