1.3 虚拟化与Docker

虚拟化技术是一个通用的概念,在不同领域有不同的理解。在计算领域,一般指的是计算虚拟化(Computing Virtualization),或通常说的服务器虚拟化。维基百科上的定义如下:

在计算机技术中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用比原本的组态更好的方式来应用这些资源。

可见,虚拟化的核心是对资源进行抽象,目标往往是为了在同一个主机上运行多个系统或应用,从而提高系统资源的利用率,同时带来降低成本、方便管理和容错容灾等好处。

从大类上分,虚拟化技术可分为基于硬件的虚拟化和基于软件的虚拟化。其中,真正意义上的基于硬件的虚拟化技术不多见,少数如网卡中的单根多IO虚拟化(Single Root I/O Virtualization andSharing Specification,SR-IOV)等技术,也超出了本书的讨论范畴。

基于软件的虚拟化从对象所在的层次,又可以分为应用虚拟化和平台虚拟化(通常说的虚拟机技术即属于这个范畴)。其中,前者一般指的是一些模拟设备或Wine这样的软件。后者又可以细分为如下几个子类:

完全虚拟化。虚拟机模拟完整的底层硬件环境和特权指令的执行过程,客户操作系统无需进行修改。例如VMware Workstation、VirtualBox、QEMU等。

硬件辅助虚拟化。利用硬件(主要是CPU)辅助支持(目前x86体系结构上可用的硬件辅助虚拟化技术包括Intel-VT和AMD-V)处理敏感指令来实现完全虚拟化的功能,客户操作系统无需修改,例如VMwareWorkstation、Xen、KVM。

部分虚拟化。只针对部分硬件资源进行虚拟化,客户操作系统需要进行修改。现在有些虚拟化技术的早期版本仅支持部分虚拟化。

超虚拟化(Paravirtualization)。部分硬件接口以软件的形式提供给客户机操作系统,客户操作系统需要进行修改,例如早期的Xen。

操作系统级虚拟化。内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程。容器相关技术即在这个范畴。

可见,Docker以及其他容器技术都属于操作系统的虚拟化这个范畴。

Docker虚拟化方式之所以拥有众多优势,这跟操作系统的虚拟化自身的特点是分不开的。下面图1-1比较了Docker和常见的虚拟机方式的不同之处。

传统方式是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层。

Docker容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,因此更加轻量级。

时间: 2024-11-07 16:00:39

1.3 虚拟化与Docker的相关文章

虚拟化之docker

1,什么是docker dokcer是应用容器,它是基于系统的虚拟化,他不是基于硬件的虚拟化(KVM),可能这样说有点抽象,我在知乎看到过一个比喻, docker思想是来源于集装箱的,在一艘大船上,可以用集装箱将各种物品分类并打包,那么这样就有多个集装箱,那么这里的集装箱类似于docker了. 而这艘大船就类似于我们的系统的了. 如下是它与kvm底层的区别 2,docker的历史 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Go

虚拟化技术—docker容器—安装篇

核心概念 1. 镜像 是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署. 2. docker容器 镜像类似于操作系统而容器类似于虚拟机本身.它可以被启动.开始.停止.删除等操作每个容器都是相互隔离的. 3. docker仓库 存放镜像的一个场所仓库分为公开仓库和私有仓库. 最大的公开仓库是Docker hubhub.docker.com国内公开仓库http://dockerpool.com/ 一.安装 centos6 上安装(6.5之前版本需要升级一下 yum

虚拟化技术—docker容器—管理篇

一.我们怎么更方便的进去已经start的容器呢? nsenter:可以通过这个命令进去docker的images里 首先获取一个容器的id: docker inspect --format " {{.State.Pid}}" centos_with_nettools 获取一个id 10592 nsenter --target 10592 --mount --yts --ipc --net 这样就进去了,当然这样很麻烦,所以可以写一个脚本: cat in.sh CNAME=$1 CPID

虚拟化技术—docker容器—Dockerfile篇

什么是Dockerfile? 按照平时,我们都需要先让一个容器跑起来,然后进去搭建制定自己的服务,那有没有更简洁的方法呢?Dockerfile就是为了更方便的制定容器的. 首先先看Dockerfile里的一些定义,这里从网上截了个图,比较形象: 创建目录: 要先把需要的软件包放在同一个目录下 编写Dockerfile,这里要特别提醒,Dockerfile编写需要非常注意空格!!! vim Dockerfile 添加: # This is My first Dockerfile # Version

虚拟化技术—docker容器—web UI篇

docker官方提供了一个web UI界面管理容器和镜像,名为:shipyard 先修改一下配置文件 vim /etc/sysconfig/docker 添加: other_args="-H tcp://0.0.0.0:235 -H unix:///var/run/docker.sock" 注:centos7使用OPTIONS="-H tcp://0.0.0.0:235 -H unix:///var/run/docker.sock" 重启: /etc/init.d/

虚拟化技术—docker容器—网络模式

Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理.然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分.因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求.这里先介绍Docker自身的4种网络工作方式. 1. Docker的4种网络模式 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: § host模式,使用--net=host指定

虚拟化容器docker实践基础

本文根据docker的镜像.容器.仓库.数据.网络五个方面详细讲述了docker的基础内容,通过本文学系后将能完成docker的基础操作,为以后dockerfile 使用打下技术基础. docker核心概念--镜像.容器.仓库 1. 镜像 是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署. 2. docker容器 镜像类似于操作系统,而容器类似于虚拟机本身.它可以被启动.开始.停止.删除等操作,每个容器都是相互隔离的. 3. docker仓库 存放镜像的一个

虚拟化技术—docker容器—PIPEWORK解读与实践

本文通过3个样例 -- 将Docker容器配置到本地网络环境中.单主机Docker容器的VLAN划分.多主机Docker容器的VLAN划分,演示了如何使用pipework帮助我们进行复杂的网络设置,以及pipework是如何工作的. 1.pipework的使用以及源码分析 Docker自身的网络功能比较简单,不能满足很多复杂的应用场景.因此,有很多开源项目用来改善Docker的网络功能,如pipework.weave.flannel等.这里,就先介绍一下pipework的使用和工作原理. pip

虚拟化容器Docker核心技术实战视频课程

===============课程目录=============== ├─(1) 01Docker_前提知识要求和课程简介.avi├─(2) 02__Docker_为什么会出现.avi├─(3) 03Docker_理念.avi├─(4) 04Docker_是什么.avi├─(5) 05__Docker_能干什么.avi├─(6) 06Docker_三要素.avi├─(7) 07Docker_CentOS6安装Docker.avi├─(8) 08__Docker_CentOS7安装Docker简介