Skip to content

Commit

Permalink
post a new blog.
Browse files Browse the repository at this point in the history
  • Loading branch information
stonefishy committed Oct 17, 2024
1 parent 7badb59 commit 50f3da4
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions source/_posts/2018-02-17-docker-vs-virtual-machine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: 谈谈Docker与虚拟机
date: 2018-02-17 09:26:59
tags: [Docker, Virtual Machine]
categories: [DevOps]
---

在当今的计算机科技迅速发展的时代,`Docker``虚拟机(Virtual Machine, VM)`作为两种重要的技术,各自发挥着不可或缺的作用。它们在软件开发、测试以及生产环境中都得到了广泛应用。我们将详细探讨 Docker 和虚拟机的工作原理,并比较它们之间的区别。

{% image /assets/images/docker/docker-vs-vm.png, alt=Docker vs VM %}

## 虚拟机的原理
`虚拟机`是一种模拟计算机系统的技术,可以在物理计算机(宿主机)上创建多个虚拟计算机(虚拟机)。每个虚拟机都有自己的操作系统、应用程序和独立的硬件资源。虚拟机的实现依赖于`虚拟化技术`,这种技术通过在宿主机上安装一个叫做“虚拟机监控器”(`Hypervisor`)的软件来实现。

### 虚拟机的工作过程
**宿主机**:运行虚拟机监控器的物理服务器,提供 CPU、内存和存储等资源。
**虚拟机监控器**:在宿主机上运行的管理软件,负责创建、管理和分配虚拟机资源。
**虚拟机**:在虚拟机监控器上运行的操作系统,虚拟机就像一台真实的计算机,具有自己的操作系统和应用程序。

{% pbg danger, 在虚拟机中,`每个虚拟机都拥有自己的操作系统实例`,这使得它们可以独立运行各种软件和服务 %}。由于虚拟机提供了完整的隔离环境,因此可以在同一台宿主机上运行不同版本的操作系统。

## Docker的原理
`Docker` 是一种`容器化技术(Containery)`,它通过将应用程序及其所有依赖项打包在一个可移植的容器中,使得应用程序可以在任何环境中一致地运行。{% pbg danger, 与虚拟机不同,Docker 不需要在每个容器中安装完整的操作系统,而是共享宿主机的操作系统内核。%}

### Docker的工作过程
**宿主机**:运行 `Docker 引擎(Docker Engine)`的物理服务器,提供 CPU、内存和存储等资源。
**Docker 引擎**:管理 Docker 容器的核心组件,包括容器的创建、运行、停止和删除。
**Docker 容器**:轻量级的独立运行环境,包含应用程序及其所有依赖项,但共享宿主机的操作系统内核。

由于 Docker 容器的轻量级特性,多个容器可以快速启动和停止,且相互之间几乎不占用额外的资源。这使得 Docker 特别适合于微服务架构和持续集成/持续部署(CI/CD)环境。

## Docker与虚拟机的区别
虽然 Docker 和虚拟机都可以用于隔离应用程序,但它们在原理、性能和使用场景等方面存在显著区别。

| 特点 | Docker(容器) | 虚拟机 (VM) |
|--------------|---------------------------------------|---------------------------------------|
| 架构 | 共享宿主机的操作系统内核 | 每个虚拟机有独立的操作系统 |
| 启动速度 | 启动速度快,通常在几秒内 | 启动速度慢,可能需要几分钟 |
| 资源开销 | 占用较少的资源,适合高密度部署 | 占用较多的资源,较适合低密度部署 |
| 隔离程度 | 轻度隔离,适合同一操作系统中的应用 | 完全隔离,适合不同操作系统的应用 |
| 镜像管理 | 使用分层文件系统,节省存储空间 | 每个虚拟机镜像比较大,资源利用率较低 |
| 使用场景 | 适合快速开发、测试和微服务架构 | 适合需要完整操作系统和应用的场景 |


## 总结
Docker 和虚拟机各有其优势与适用场景。{% pbg info,虚拟机提供了更强的隔离性和兼容性,适合在需要不同操作系统的环境中使用;而 Docker 由于其轻量和快速启动的特点,更适合于现代应用的开发和部署 %}。
Binary file added source/assets/images/docker/docker-vs-vm.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 50f3da4

Please sign in to comment.