openstack虚拟机状态,openstack虚拟机状态类型

作者:高方托管网 2024-10-16 22:46:57 0

大家好,今天小编关注到一个比较有意思的话题,就是关于openstack虚拟机状态的问题,于是小编就整理了2个相关介绍openstack虚拟机状态的解答,让我们一起看看吧。

如何通俗的解释“Docker”?

Docker到现在为止,已经越来越流行了。主要是因为他的便捷,加之当下微服务成为后端横向扩展的一种解决思路,而微服务又是依赖于容器的。

openstack虚拟机状态,openstack虚拟机状态类型

那么现在就来说说什么是 Docker:

其实 docker 的概念就像是集装箱,正如上图所示。一对集装箱,装载有不同的 环境或软件。

比如我有一艘船,需要运输一批有毒的化学物质,还要运输一批食材,牛肉,水果等,但是你不能将这些物质混合装在一起吧,因为会影响到食物,到时候就损失一大笔 money 了。若是用集装箱封装起来就不会有刚刚的这种烦恼,装食材的集装箱装食材,装化学物质的集装箱装化学物质,两者互不影响,由统一艘船运送。达到了隔离的目的。

在实际运用中,你的软件开发工程师用的是 macOS ,你的测试工程师用得是 Ubuntu,你的线上环境是 CentOS ,显然当项目测试和正式上线的时候会有环境冲突问题。如果是将项目封进一个 docker 镜像,不同的操作系统只要将这个封好的镜像部署就行。就可以直接使用了,省去了环境配置的问题。

下面是虚拟机与容器的一些对比图:

以上是我的回答,希望能够帮到你。

Docker是使用时下很火的Golang语言进行开发的,其技术核心是Linux内核的Cgroup,Namespace和AUFS类的Union FS等技术,这些技术都是Linux内核中早已存在很多年的技术,所以严格来说并不是一个完全创新的技术,Docker通过这些底层的Linux技术,对Linux进程进行封装隔离,而被隔离的进程也被称为容器,完全独立于宿主机的进程。所以Docker是容器技术的一种实现,也是操作系统层面的一种虚拟化,与虚拟机的通过一套硬件再安装操作系统完全不同。

把一台电脑隔离成很多独立小环境的技术,现代操作系统和大部分硬件支持。这个新环境就是容器,而管理这个小环境的就是容器管理程序。docker就是其中的一个,还有其它的比如podman,当然没有这些专用的工具,也能用操作系统的自带的工具手工创建这个小环境。和虚拟机不同的是,他是把系统隔离出来的,一个大楼有好多房间,共用的是一个底层硬件和操作系统。而虚拟机不是,虚拟机是虚拟出一个完全独立的操作系统,这个操作系统和宿主机是2个不相干的系统,环境更彻底,缺点是会浪费些资源,牺牲些性能。

自己买了个服务器,前不久搭建好的一个网站,想要再搞一个站点,无奈只能修改端口后,再部署另外一个站点。繁琐的配置运行环境,迁移网站,是否让你感觉到很繁琐?服务器不想用了,想搬迁到另外一台服务器去部署,先是拷贝原有数据,在新的服务器上又开始搭建环境进行部署,这些费时间的事情现在只需要几分钟就能完成,那就是docker技术。

docker通俗按照自己的理解来说,就是类似VM虚拟机一样的虚拟技术。但是它比虚拟机更加强大,体积小,运行速度快,启动和关闭只需要几秒。相对于普通虚拟机来说,启动时间在分钟级别,占用内存大。所以这就是docker出现之后的优势。docker容器可以打包为镜像文件(类似VM虚拟机的那些快照文件),迁移的时候我们只需要在新服务器上安装docker,就能把之前打包好的镜像文件导入到docker里面,运行容器,就能实现访问,不需要重新配置环境。

假设您需要构建一个应用程序。这可能是下一个头条,下一个微信,下一个百度,下一个京东,或者别的什么。为了使该应用程序向公众开放,您需要一些地方来托管它。以前,这意味着您需要购买或者租用一个称为"服务器"的专用 计算机,它基本上是一台专门用于托管网站或 Web 服务的服务器,而不是您自己的个人计算机。然后将它托管到数据中心

然后,"云"的时代来了。您可以将您的程序放到像阿里云这样的云公司的"数据中心"对外提供服务。与 Web 托管服务不同,这些公司采用了一种称为"虚拟化"的概念,即硬件资源通过操作系统功能进一步细分隔离,并更优化地向需要这些资源的客户提供操作系统。您只为所使用的操作系统服务付费,而不是使用整个物理服务器。对于您自己和云公司来说,这通常更加划算。

但即使是传统的云计算也无法避免一件事——使用大量的操作系统,如windows和Linux(RHEL,Ubuntu,Fedora等)。这些OS可以轻松地超过 1 GB 的大小,也称为"OS 映像"。但是,您的应用程序可能只有 300 MB 的大小。但是虚拟化产生的虚拟化环境,其大小为 1 GB 。您的应用程序远小于该虚拟机。您是不是觉得这1GB成本有点高。

Docker 就是为了解决这个问题。Docker 以以下方式进行操作。可以共享某些公共资源,而不是为每个应用程序托管一个操作系统。并且有一种叫做"docker 引擎"的东西,它位于操作系统的上层,如下所示。

从上图中您可以直观地观察使用容器时"app "是如何变得更小。从某种意义上说,这是一个非常简单的解决方案,只不过是在操作系统和应用程序之间引入另一层来优化资源,使用并减少对冗余操作系统的需求。这是开发应用程序的重大突破,因为这种抽象级别解决了一个重大的问题— 减少配置巨型虚拟机的麻烦,只托管其应用程序所必需依赖的最小"容器"。

级虚拟化(通俗解释:Docker内嵌极小型系统,例如Linux只有5M多,windows也是)。它是内核级的虚拟化。期望达到使项目运行环境“一次封装,到处运行的目的”。

在Docker里面可以设置使用Windows还是Linux系统,默认是用Linux系统,基于Ubuntu的,只有5M多,包含了最基本功能。

利用docker创建的运行环境叫做docker容器,容器是通过docker镜像创建的,docker镜像文件可以放在私有仓库中也可以放在共有仓库中。

学习Docker主要做两件事情:

1.在Docker安装软件

2.把项目部署到Docker

「链接」通俗易懂(基础+进阶)

【此回答转自乐字节】

如何理解Java虚拟机栈?

和程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期和线程相同,描述的是 Java 方法执行的内存模型。

Java 内存可以粗糙的区分为堆内存(Heap)和栈内存(Stack),其中栈就是现在说的虚拟机栈,或者说是虚拟机栈中局部变量表部分。 (实际上,Java虚拟机栈是由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法出口信息。)

局部变量表主要存放了编译器可知的各种数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置)。

Java 虚拟机栈会出现两种异常:StackOverFlowError 和 OutOfMemoryError。

StackOverFlowError: 若Java虚拟机栈的内存大小不允许动态扩展,那么当线程请求栈的深度超过当前Java虚拟机栈的最大深度的时候,就抛出StackOverFlowError异常。

OutOfMemoryError: 若 Java 虚拟机栈的内存大小允许动态扩展,且当线程请求栈时内存用完了,无法再动态扩展了,此时抛出OutOfMemoryError异常。

Java 虚拟机栈也是线程私有的,每个线程都有各自的Java虚拟机栈,而且随着线程的创建而创建,随着线程的死亡而死亡。

到此,以上就是小编对于openstack虚拟机状态的问题就介绍到这了,希望介绍关于openstack虚拟机状态的2点解答对大家有用。

相关推荐