Use list for simple content

This commit is contained in:
Baohua Yang
2026-02-23 09:06:27 -08:00
parent 4941ef171c
commit 669da56662

View File

@@ -112,30 +112,32 @@ $ docker compose up
#### 3. 资源效率 #### 3. 资源效率
Docker 容器共享宿主机内核无需为每个应用运行完整的操作系统 Docker 容器共享宿主机内核无需为每个应用运行完整的操作系统以一台 64GB 内存的物理服务器为例
- **传统虚拟机方案**每个虚拟机都需要运行完整的操作系统每个额外占用如 2GB 内存产生大量资源开销实际可用于应用的内存可能只有约 18GB
- **Docker 方案**容器直接共享宿主机系统只需付出很少的基础开销OS及引擎约 4GB即可将约 60GB 的内存全部用于实际应用
```mermaid ```mermaid
flowchart TD flowchart TD
subgraph VM ["传统虚拟机方案 (实际可用于应用: 18GB) ❌"] subgraph VM ["传统虚拟机方案 ❌"]
direction TB direction TB
Server1["物理服务器 (64GB 内存)"] Server1["物理服务器 (64GB 内存)"]
subgraph VMs [" "] subgraph VMs ["可用应用内存: 约 18GB"]
direction LR direction LR
VM1["VM1<br/>8GB 内存 (含 OS 2GB)<br/>应用 1"] VM1["VM 1: 应用 1<br/>(含 2GB OS)"]
VM2["VM2<br/>8GB 内存 (含 OS 2GB)<br/>应用 2"] VM2["VM 2: 应用 2<br/>(含 2GB OS)"]
VM3["VM3<br/>8GB 内存 (含 OS 2GB)<br/>应用 3"] VM3["VM 3: 应用 3<br/>(含 2GB OS)"]
end end
Server1 --- VMs Server1 --- VMs
end end
subgraph Docker ["Docker 方案 (实际可用于应用: 约 60GB) ✅"] subgraph Docker ["Docker 方案 ✅"]
direction TB direction TB
Server2["物理服务器 (64GB 内存)<br/>宿主机 OS + Docker (约 4GB)"] Server2["物理服务器 (64GB 内存)<br/>含约 4GB OS及引擎配置"]
subgraph Containers [" "] subgraph Containers ["可用应用内存: 约 60GB"]
direction LR direction LR
C1["容器 1<br/>应用 1<br/>(按需分配)"] C1["容器 1: 应用 1<br/>(按需分配)"]
C2["容器 2<br/>应用 2<br/>(按需分配)"] C2["容器 2: 应用 2<br/>(按需分配)"]
C3["容器 3<br/>应用 3<br/>(按需分配)"] C3["容器 3: 应用 3<br/>(按需分配)"]
end end
Server2 --- Containers Server2 --- Containers
end end
@@ -203,25 +205,14 @@ flowchart TD
笔者认为技术选型要客观Docker 并非银弹以下场景可能不太适合 笔者认为技术选型要客观Docker 并非银弹以下场景可能不太适合
#### 1. 需要完全隔离的场景 - **需要完全隔离的场景**容器共享宿主机内核隔离性不如虚拟机如果需要运行不受信任的代码虚拟机可能更安全
- **需要特殊内核的场景**容器使用宿主机内核如果应用需要特定版本的内核或内核模块可能需要虚拟机
容器共享宿主机内核隔离性不如虚拟机如果你需要运行不受信任的代码虚拟机可能更安全 - **Windows 原生应用**虽然 Docker 支持 Windows 容器但生态不如 Linux 容器成熟传统 Windows 应用的容器化仍有挑战
- **桌面应用**Docker 主要面向服务端应用桌面 GUI 应用的容器化虽然可行但通常得不偿失
#### 2. 需要特殊内核的场景
容器使用宿主机内核如果应用需要特定版本的内核或内核模块可能需要虚拟机
#### 3. Windows 原生应用
虽然 Docker 支持 Windows 容器但生态不如 Linux 容器成熟传统 Windows 应用的容器化仍有挑战
#### 4. 桌面应用
Docker 主要面向服务端应用桌面 GUI 应用的容器化虽然可行但通常得不偿失
### 1.3.5 与传统虚拟机的对比总结 ### 1.3.5 与传统虚拟机的对比总结
相关信息如下表 下表对比了容器技术与传统虚拟机的区别
| 特性 | Docker 容器 | 传统虚拟机 | | 特性 | Docker 容器 | 传统虚拟机 |
|:------|:-----------|:-----------| |:------|:-----------|:-----------|