Use list for simple content

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