虚拟机 – 嗨软 https://ihacksoft.com/archive 分享最好用的常用软件 Tue, 22 Nov 2022 02:41:09 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.9.26 Docker容器与虚拟机区别是什么? https://ihacksoft.com/archive/835.html https://ihacksoft.com/archive/835.html#respond Mon, 28 Oct 2019 11:34:45 +0000 https://ihacksoft.com/?p=1564   现在越来越多地听到 Docker 这个词了,只知道是容器的意思,大致的意思还是懂的,但是要说具体一点就不清楚了。有点虚拟机的味道,但两者是不同的概念。刚好在知乎上看到一篇文章,写得非常详细并易于理解,于是转载一下,趁此机会也学习一下。

  各种虚拟机技术开启了云计算时代;而Docker,作为下一代虚拟化技术,正在改变我们开发、测试、部署应用的方式。那虚拟机与Docker究竟有何不同呢?首先,大家需要明确一点,Docker容器不是虚拟机!第一次接触Docker的时候,我把它比做一种轻量级的虚拟机。这样做无可厚非,因为Docker最初的成功秘诀,正是它比虚拟机更节省内存,启动更快。Docker不停地给大家宣传,"虚拟机需要数分钟启动,而Docker容器只需要50毫秒"。

  然而,Docker容器并非虚拟机!

理解虚拟机

使用虚拟机运行多个相互隔离的应用时,如下图:

Docker 容器与虚拟机区别

从下到上理解上图:

基础设施(Infrastructure)。它可以是你的个人电脑,数据中心的服务器,或者是云主机。

主操作系统(Host Operating System)。你的个人电脑之上,运行的可能是MacOS,Windows或者某个Linux发行版。

虚拟机管理系统(Hypervisor)。利用Hypervisor,可以在主操作系统之上运行多个不同的从操作系统。类型1的Hypervisor有支持MacOS的HyperKit,支持Windows的Hyper-V以及支持Linux的KVM。类型2的Hypervisor有VirtualBox和VMWare。

从操作系统(Guest Operating System)。假设你需要运行3个相互隔离的应用,则需要使用Hypervisor启动3个从操作系统,也就是3个虚拟机。这些虚拟机都非常大,也许有700MB,这就意味着它们将占用2.1GB的磁盘空间。更糟糕的是,它们还会消耗很多CPU和内存。
各种依赖。每一个从操作系统都需要安装许多依赖。如果你的的应用需要连接PostgreSQL的话,则需要安装libpq-dev;如果你使用Ruby的话,应该需要安装gems;如果使用其他编程语言,比如Python或者Node.js,都会需要安装对应的依赖库。

应用。安装依赖之后,就可以在各个从操作系统分别运行应用了,这样各个应用就是相互隔离的。

理解Docker容器

使用Docker容器运行多个相互隔离的应用时,如下图:

Docker 容器与虚拟机区别

主操作系统(Host Operating System)。所有主流的Linux发行版都可以运行Docker。对于MacOS和Windows,也有一些办法"运行"Docker。

Docker守护进程(Docker Daemon)。Docker守护进程取代了Hypervisor,它是运行在操作系统之上的后台进程,负责管理Docker容器。
各种依赖。对于Docker,应用的所有依赖都打包在Docker镜像中,Docker容器是基于

Docker镜像创建的。
应用。应用的源代码与它的依赖都打包在Docker镜像中,不同的应用需要不同的Docker镜像。不同的应用运行在不同的Docker容器中,它们是相互隔离的。

对比 Docker 与虚拟机

Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。

说了这么多Docker的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。

虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。

Docker通常用于隔离不同的应用,例如前端,后端以及数据库。

Docker 容器与虚拟机区别

容器使用由Linux内核提供的命名空间,大多数人把命名空间认为是一个上下文或域的授权决定(进程X有权访问资源Y)。

如果容器内的进程扫描文件系统来寻找要窃取的东西,它只能找到容器内明确可见的文件。

如果容器内的进程中想尝试做一些恶意的事情,比如打开端口31337后门服务,它不会有多大好处,因为这个端口实际上不会暴露在容器外的任何地方。容器内部的恶意进程不能访问的任何容器外的其他进程的内存。

有几个方法可以摆脱容器的束缚,但这些通常需要容器的root访问权限。

不要以root运行应用程序,通过简单的几个步骤稳固root访问权限。

容器使用cgroup来提供与虚拟机相同级别的资源使用保护机制。容器和虚拟机都可以获取整个网络链接。

容器运行的是不完整的操作系统(尽管它们可以),虚拟机必须运行完整的。

容器比虚拟机使用更少的闲置资源,它们不运行完整的操作系统。

容器在在云硬件(或虚拟机)中可以被复用,就像虚拟机在裸机上可以被复用。

容器需要毫秒分配,虚拟机需要几分钟。所以,你可以另配、重新平衡、释放以及使用容器比虚拟机的迭代更加迅速。

如果每个容器运行的只有一个服务或者数据库,这是比较容易管理的。而且比较容易监控性能,了解故障的影响,并预测成本。

离目标进程越远,隔离会变得更昂贵。虚拟机是伟大的,它通过抽象来增加并行,服务于多操作系统的使用情况以及业界最好的安全性。但对于隔离,它们相当的昂贵,容器提供的隔离就便宜。

服务器虚拟化 vs Docker

Docker 容器与虚拟机区别

服务器好比运输码头:拥有场地和各种设备(服务器硬件资源)

服务器虚拟化好比作码头上的仓库:拥有独立的空间堆放各种货物或集装箱
(仓库之间完全独立,独立的应用系统和操作系统)

Docker比作集装箱:各种货物的打包
(将各种应用程序和他们所依赖的运行环境打包成标准的容器,容器之间隔离)

Docker有着小巧、迁移部署快速、运行高效等特点,但隔离性比服务器虚拟化差:不同的集装箱属于不同的运单(Docker上运行不同的应用实例),相互独立(隔离)。但由同一个库管人员管理(主机操作系统内核),因此通过库管人员可以看到所有集装箱的相关信息(因为共享操作系统内核,因此相关信息会共享)。

服务器虚拟化就好比在码头上(物理主机及虚拟化层),建立了多个独立的“小码头”—仓库(虚拟机)。其拥有完全独立(隔离)的空间,属于不同的客户(虚拟机所有者)。每个仓库有各自的库管人员(当前虚拟机的操作系统内核),无法管理其它仓库。不存在信息共享的情况

因此,我们需要根据不同的应用场景和需求采用不同的方式使用Docker技术或使用服务器虚拟化技术。例如一个典型的Docker应用场景是当主机上的Docker实例属于单一用户的情况下,在保证安全的同时可以充分发挥Docker的技术优势。对于隔离要求较高的环境如混合用户环境,就可以使用服务器虚拟化技术。正则科技提供了丰富的Docker应用实例,满足您的各种应用需求,并且支持在已经安装了自在(Isvara)服务器虚拟化软件的主机上同时使用服务器虚拟化技术和Docker技术提供不同技术场景。

]]>
https://ihacksoft.com/archive/835.html/feed 0
安装 VMware Tools 后虚拟机和主机之间无法复制文件 https://ihacksoft.com/archive/692.html https://ihacksoft.com/archive/692.html#respond Mon, 10 Jun 2019 14:50:40 +0000 https://ihacksoft.com/?p=1421   我的虚拟机使用的是 Vmware Workstation 14 这个版本,安装系统后可以正常地运行,但是在安装了 VMware Tools 这款软件以后,根据提示重启系统就发现无法与系统主机进行文件交换,也就是说 VMware Tools 这款软件没有起到实际的作用。那么请问这个问题怎么解决啊?

  VMware Tools 这款工具的使用,必须和虚拟机的版本进行匹配,比如你用的是 VMware 14 这个版本的虚拟机,那么就需要对应 VMware Tools 14 版本的工具才可以。如果工具的版本安装没有问题的话,那么可以考虑在系统里面共享一个文件夹,然后在虚拟机里面访问这个文件夹来进行文件的共享操作。

]]>
https://ihacksoft.com/archive/692.html/feed 0
VMWare 虚拟机 Linux 与 Windows 系统互相复制粘贴的实现方法 https://ihacksoft.com/archive/393.html https://ihacksoft.com/archive/393.html#respond Tue, 03 Jul 2018 08:33:06 +0000 https://ihacksoft.com/?p=403 经常用虚拟机来做实验,首选的还是 VMWare。如果虚拟机里的系统是 Windows,那么,复制和粘贴是非常方便的。如果是 Linux 系统,麻烦一点,但也是很简单的。

1.打开虚拟机的菜单“虚拟机”,下拉框中会有一个“安装 VMware Tools”工具的安装选项。

点击之后,在CentOS的目录下会出现VMwareTools…tar.gz 的文件。路径(/media/VMwareTools)
如果对应的目录下没有出现这个问题,请重试操作或者手动下载这个文件到对应的目录。

2.将此文件复制到/tmp文件下进行解压

cd /media/VMware Tools

cp VMwareTools-XXXX.tar.gz /tmp

cd /tmp

tar -xzvf VMwareTools...gz

3.这是会出现解压后的目录。( vmware-tools-distrib目录)。然后执行编译操作

cd vmware-tools-distrib/

./vmware-install.pl

开始进行安装,一路回车就好了。。。

以上命令要在root用户下执行,普通用户不行。

4.安装成功,重新启动系统就行了。

reboot

]]>
https://ihacksoft.com/archive/393.html/feed 0
VMware Workstation 14.x 虚拟机黑屏+卡死的原因分析及解决方法 https://ihacksoft.com/archive/220.html https://ihacksoft.com/archive/220.html#respond Sat, 07 Apr 2018 07:21:41 +0000 https://ihacksoft.com/?p=230   刚更新到 VMware Workstation Pro 14.1.1,结果发现一个很严重的问题,就是开启之前的虚拟机系统,竟然是出现黑屏,没有任何显示,之前的系统是在 VMware 12 下建立的,难道不兼容?按理来说应该不会的。网上搜索了一下,果然,很多人都遇到了这个问题。通过学习思考,黑屏原因及解决方法如下:

VMware Workstation 黑屏

原因分析

  开启或新建虚拟机后出现黑屏现象,但是我们发现如果挂起虚拟机,是可以显示挂起前最后的画面。这么看来,虚拟机核心是正常工作的,只是“显示”方面出现了一些问题。Hakc520.com 了解到,虚拟机内界面的显示其实是通过“内部网络传输”的方式实现的,因此,无法显示虚拟机的界面,很有可能是网络组件方面出现了问题。支持这一说法的另外一个依据是,VMware官方对Workstation Pro 14 的新功能新特性的介绍包含了这样一条:
“新的网络连接控制”:Workstation 14 提供了许多改进的网络连接功能。现在,您可以在客户机虚拟网卡上使用软件控制模拟延迟和丢包,并重命名虚拟网络以改善组织结构。”看起来VM14和VM12在网络连接方面的确实有比较大的改动,因此VM12没问题而VM14出现问题似乎就没有那么奇怪了。

故障排查

  以管理员身份运行 CMD,输入 netsh winsock show catalog,该命令用来查看网络组件的注册日志,可以观察到 VMware 14 注册了两个新的LSP:vSockets DGRAM 和 vSockets STREAM,路径是%windir%\system32\vsocklib.dll。观察一下有没有其他模块也注册了vSockets DGRAM、vSockets STREAM,如果有,就卸载掉这个模块所属的软件。比方有网友安装了迅游加速器,它注册了vSockets DGRAM,与VMware产生了冲突,卸载迅游加速器后 VMware 不再黑屏。

解决方法

  官网论坛上也有人在问这个问题,客服说可以试试在 VM settings 里 disable 'Accelerated 3D Graphics' ,也就是关闭3D图形,试了,没有用。真正解决方法:修复 Winsock LSP(Label Switched Path)。360安全卫士、金山毒霸里的都带有 LSP 工具用于修复 LSP 网络协议。或者手工 重置下网络链接 Winsock,管理员身份打开命令提示符cmd,输入命令 netsh winsock reset,重启系统问题解决!对了,还有个偶尔卡死的问题,解决方法是关闭系统防火墙:打开控制面板,找到 Windows 防火墙,左侧有个“打开或关闭 Windows 防火墙”。

]]>
https://ihacksoft.com/archive/220.html/feed 0
什么叫虚拟机?你真正理解虚拟机的功能特性吗? https://ihacksoft.com/archive/192.html https://ihacksoft.com/archive/192.html#respond Mon, 26 Jun 2017 02:23:36 +0000 https://ihacksoft.com/?p=202 虚拟机(Virtual Machine)就是通过软件方法利用一台物理电脑的硬盘和内存可虚拟出若干台机器。它是电脑中的电脑,是利用软件虚拟出来的计算机,是在现有的操作系统上虚拟出来的一个完全隔离环境中的完整计算机系统。]]>   通俗地讲,虚拟机Virtual Machine)就是通过软件方法利用一台物理电脑的硬盘和内存可虚拟出若干台机器。它是电脑中的电脑,是利用软件虚拟出来的计算机,是在现有的操作系统上虚拟出来的一个完全隔离环境中的完整计算机系统。

  运行虚拟机的电脑分为Host(主系统)和Guest OS(子系统),Host就是用户的计算机,直接控制操作系统和硬件,称为宿主机,Guest OS则是利用软件在主系统中虚拟出来一个硬件环境,称为虚拟机或客户机。由宿主机创建的虚拟机,与真实的计算机几乎一模一样,不但有独立的CPU、内存、硬盘网卡等各种硬件,还有自己的BIOS。用户也可以在虚拟机上安装Linux、Windows等真实的操作系统及各种应用软件。

  虚拟机(Virtual Machine)技术,就是通过软件工具模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。利用这种技术,可以在现有的计算机的操作系统中建立多个同构或异构的虚拟计算机系统[1]。这些虚拟计算机系统既包括自己虚拟的内存、CPU处理器、硬盘、CD/DVD、网络适配器、USB控制器、声卡、显示器等硬件设备,又可以安装或使用各种操作系统、软件工具等,如Windows XP、Windows 7 、Windows Server 2003、Mac OS X等,而且每一台虚拟计算机都是独立运行,相互之间不干扰。目前流行的虚拟机工具有VMware Workstation(简称VMware)、Virtual Box和Virtual PC。

虚拟机 Virtual Machine

  目前流行的虚拟机软件有VMware、Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出多个计算机。本文选择是目前主流的虚拟机软件VMware,它具有以下特点:

  1、虚拟机里的所有的操作,不破坏宿主机,不影响物宿主机本身系统。而且在方便机房维护管理的同时,又保证了实验的顺利进行,增强了对学生动手实践能力的培养。

  2、虚拟机可以在一台宿主机上建立多台虚拟机,虚拟机可安装多个操作系统,虚拟机与宿主机、虚拟机与虚拟机之间可以自由搭建各种网络环境,可完成计算机教学中的大部分实验,从而缓解实验设备不足的问题。

  3、虚拟机能在同一台计算机上同时使用两种以上的操作系统,相当于多台计算机在同时运行,相互之间的切换简单。

  4、不同操作系统的虚拟机之间可以互动操作,进行复制、粘贴,实现宿主机与虚拟机之间的文件共享等功能。

  5、虚拟机提供了快照和复原(Undo)功能,可以有效保证实验的连续性,随时为虚拟机进行快照,还可以随时恢复到虚拟机的任何一个快照状态。

]]>
https://ihacksoft.com/archive/192.html/feed 0
VMware虚拟机XP纯净系统包下载 – 附安装方法 https://ihacksoft.com/archive/vmware-windows-xp-vmx.html https://ihacksoft.com/archive/vmware-windows-xp-vmx.html#comments Wed, 11 Dec 2013 01:51:23 +0000 https://ihacksoft.com/?p=1150   很多时候我们需要在XP环境下进行软件或系统的测试,因为电脑里安装的是Windows 7系统,所以想要拥有XP系统环境。最好的方式就是安装 VMware Workstation 或 VirtualBox 虚拟机软件,再在里面安装Windows XP,这将和真实的环境是一样的。   如何安装呢?如果采用Ghost版XP,虽然安装速度很快,但是基本是不纯净的,除了带有第三方软件之外,还有可能对系统进行了某些修改,不利用于我们测试;如果下载原版的XP ISO镜像安装,采用普通安装方式,那么安装时间将会很久。现在有个两全其美的方法,那就是直接提供XP纯净系统 For VMware虚拟机。]]>   很多时候我们需要在XP环境下进行软件或系统的测试,因为电脑里安装的是Windows 7系统,所以想要拥有XP系统环境。最好的方式就是安装 VMware Workstation 或 VirtualBox 虚拟机软件,再在里面安装Windows XP,这将和真实的环境是一样的。

  如何安装呢?如果采用Ghost版XP,虽然安装速度很快,但是基本是不纯净的,除了带有第三方软件之外,还有可能对系统进行了某些修改,不利用于我们测试;如果下载原版的XP ISO镜像安装,采用普通安装方式,那么安装时间将会很久。现在有个两全其美的方法,那就是直接提供XP纯净系统 For VMware虚拟机。

  文件已经打包好了,400多M,兼容最新的VMware 10,经测试这是个完全纯净的XP系统,简单讲讲安装方法。首先将压缩下载后解压至任一目录,然后启动VMware Workstation 10,切换到主页,点击下方的“打开虚拟机”,系统会提示选择.vmx文件,我们选择Panther_VM.vmx,之后开启此虚拟机即可,不出意外的话,它会马上提示:此虚拟机可能已被移动或复制。为了配置特定的管理和网络功能,VMware Workstation 需要知道是否已移动或复制了此虚拟机。如果您不知道,请回答“我已复制该虚拟机”。其实我们是知道的,毫无疑问,选择中间的“我已复制该虚拟机”,如下图:

VMware虚拟机XP系统

之后,直接启动就好了,进入之后你就可以看到全新的、完全干净的Windows XP SP3。

VMware虚拟机XP纯净系统

发现已经自带了VMware Tools,省去手动安装重启的步骤。硬盘空间比较小,分了两个区共8G,不过后期自己可以调整的。另外,建议先做个VMware快照,这样在系统出问题时可以立马还原。

Note: There is a file embedded within this post, please visit this post to download the file. ]]>
https://ihacksoft.com/archive/vmware-windows-xp-vmx.html/feed 8