《Docker技术入门与实战》——1.3 虚拟化与Docker

简介:

本节书摘来自华章计算机《Docker技术入门与实战》一书中的第1章,第1.3节,作者:杨保华,戴王剑,曹亚仑著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 虚拟化与Docker

虚拟化技术是一个通用的概念,在不同领域有不同的理解。在计算领域,一般指的是计算虚拟化(Computing Virtualization),或通常说的服务器虚拟化。维基百科上的定义如下:
在计算机技术中,虚拟化(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以用比原本的组态更好的方式来应用这些资源。
可见,虚拟化的核心是对资源进行抽象,目标往往是为了在同一个主机上运行多个系统或应用,从而提高系统资源的利用率,同时带来降低成本、方便管理和容错容灾等好处。
从大类上分,虚拟化技术可分为基于硬件的虚拟化和基于软件的虚拟化。其中,真正意义上的基于硬件的虚拟化技术不多见,少数如网卡中的单根多IO虚拟化(Single Root I/O Virtualization and Sharing Specification,SR-IOV)等技术,也超出了本书的讨论范畴。
基于软件的虚拟化从对象所在的层次,又可以分为应用虚拟化和平台虚拟化(通常说的虚拟机技术即属于这个范畴)。其中,前者一般指的是一些模拟设备或Wine这样的软件。后者又可以细分为如下几个子类:
完全虚拟化。虚拟机模拟完整的底层硬件环境和特权指令的执行过程,客户操作系统无需进行修改。例如VMware Workstation、VirtualBox、QEMU等。
硬件辅助虚拟化。利用硬件(主要是CPU)辅助支持(目前x86体系结构上可用的硬件辅助虚拟化技术包括Intel-VT和AMD-V)处理敏感指令来实现完全虚拟化的功能,客户操作系统无需修改,例如VMware Workstation、Xen、KVM。
部分虚拟化。只针对部分硬件资源进行虚拟化,客户操作系统需要进行修改。现在有些虚拟化技术的早期版本仅支持部分虚拟化。
超虚拟化(Paravirtualization)。部分硬件接口以软件的形式提供给客户机操作系统,客户操作系统需要进行修改,例如早期的Xen。
操作系统级虚拟化。内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程。容器相关技术即在这个范畴。
可见,Docker以及其他容器技术都属于操作系统的虚拟化这个范畴。
Docker虚拟化方式之所以拥有众多优势,这跟操作系统的虚拟化自身的特点是分不开的。下面图1-1比较了Docker和常见的虚拟机方式的不同之处。
传统方式是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层。
image

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

相关文章
|
1月前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
184 0
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
1天前
|
弹性计算 测试技术 持续交付
Docker技术这些应用场景,你知道吗?
Docker技术这些应用场景,你知道吗?
|
2天前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs <container_name>` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
4 0
|
6天前
|
机器学习/深度学习 数据挖掘 Docker
《Docker 简易速速上手小册》第1章 Docker 基础入门(2024 最新版)
《Docker 简易速速上手小册》第1章 Docker 基础入门(2024 最新版)
20 1
|
14天前
|
存储 Ubuntu 关系型数据库
Docker从入门到精通:ubuntu系统安装docker
本文介绍了Docker的安装过程。首先,文章简述了Docker的组成部分:镜像(如模板用于创建容器服务)、容器(运行应用的独立实体)和仓库(存储镜像的库)。接着,针对Ubuntu系统,详细阐述了卸载旧版本Docker、更新软件包、安装依赖、添加Docker官方GPG密钥和软件源、安装Docker以及配置用户组的步骤。最后,通过启动Docker、验证安装是否成功(运行`hello-world`镜像)和查看Docker版本来确认安装完成。
53 12
|
15天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
16天前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
27 0
|
22天前
|
Ubuntu Linux Shell
docker学习笔记3,从入门到精通
docker学习笔记3,从入门到精通
|
22天前
|
应用服务中间件 Shell nginx
docker学习笔记2,入门到精通
docker学习笔记2,入门到精通