【Unix/Linux 系统管理】虚拟机与容器之间的对比

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 【Unix/Linux 系统管理】虚拟机与容器之间的对比

正文


容器与虚拟机很容易混淆。两者均定义了可移植的隔离执行环境,而且无论是看起来是用起来都像是拥有根文件系统和运行进程的完整操作系统。但它们的实现去完全不同。

一个真正的虚拟机拥有操作系统内核、init 进程、与硬件交互的驱动程序,以及能够完全陷入 UNIX 操作系统。而容器只是徒有操作系统之表。以下给出了一些实际的差异:


虚拟机 容器
通过 hypervisor 共享底层硬件的完整操作系统 由共享内核管理的隔离进程组
需要完整的引导过程来初始化,启动时间在 1~2 分钟 进程直接由内核运行;不需要引导;启动时间小于 1s
长期存活 频繁替换
拥有一个或多个通过 hypervisor 挂接的专用虚拟磁盘 文件系统视图是由容器引擎所定义的分层结构
镜像大小以 GB 计算 镜像大小以 MB 计算
每个物理主机数十个或更少 每个虚拟或物理主机数量众多
guest 之间完全隔离 操作系统内核和服务是共享的
多个独立的操作系统一起运行 必须使用和宿主一样的内核(操作系统发行版也许会有不同)


容易与虚拟机结合使用是一种常见的用法。虚拟机是将物理服务器细分为可管理组块(chunk)的最佳方式。然后,你可以在虚拟机之上的容器中运行应用程序,以此实现最佳系统密度(这个过程有时称为“bin packing”)。这种虚拟机上的容器(containers-on-VMs)架构是要在公有云上运行的容器化应用程序的标准。

目录
相关文章
|
4月前
|
安全 Ubuntu Linux
Linux系统中的软件管理工具主
Linux系统中的软件管理工具主
74 7
|
1月前
|
运维 Java 虚拟化
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
119 12
|
3月前
|
存储 数据安全/隐私保护 数据中心
Incus 6.4 容器和虚拟机管理器发布
【10月更文挑战第26天】
124 2
Incus 6.4 容器和虚拟机管理器发布
|
3月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
74 6
|
4月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
346 4
Linux系统之Ubuntu安装cockpit管理工具
|
4月前
|
Ubuntu 安全 Linux
|
3月前
|
存储 持续交付 虚拟化
|
5月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
5月前
|
安全 Linux 虚拟化
10-26|我现在加了,在容器内也可以改时间了,但是我在容器内改了,为什么会影响到linux机子啊
10-26|我现在加了,在容器内也可以改时间了,但是我在容器内改了,为什么会影响到linux机子啊
|
4月前
|
监控 应用服务中间件 nginx
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。

热门文章

最新文章