mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 12:21:17 +00:00
Simplify words and fix format issues
This commit is contained in:
@@ -142,8 +142,6 @@ flowchart TD
|
||||
|
||||
### 12.1.6 总结
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 组件 | 角色 | 关键职责 |
|
||||
|------|------|----------|
|
||||
| **CLI** | 指挥官 | 发送指令,展示结果 |
|
||||
|
||||
@@ -52,8 +52,6 @@ PID Namespace 负责进程 ID 的隔离,使得容器内的进程彼此不可
|
||||
|
||||
#### PID 隔离效果
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 宿主机上查看进程
|
||||
|
||||
@@ -141,8 +139,6 @@ MNT Namespace 负责文件系统挂载点的隔离,确保容器看到独立的
|
||||
|
||||
#### 与 chroot 的区别
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 特性 | chroot | MNT Namespace |
|
||||
|------|--------|---------------|
|
||||
| 安全性 | 可以逃逸 | 更安全 |
|
||||
@@ -161,8 +157,6 @@ UTS Namespace 主要用于隔离主机名和域名。
|
||||
|
||||
#### UTS 隔离效果
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 宿主机
|
||||
|
||||
@@ -244,8 +238,6 @@ flowchart LR
|
||||
|
||||
#### 实验 1:UTS Namespace
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 创建新的 UTS namespace 并启动 shell
|
||||
|
||||
@@ -266,8 +258,6 @@ my-server
|
||||
|
||||
#### 实验 2:PID Namespace
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 创建新的 PID 和 MNT namespace
|
||||
|
||||
@@ -287,8 +277,6 @@ root 8 0.0 0.0 10072 3200 pts/0 R+ 10:00 0:00 ps aux
|
||||
|
||||
#### 实验 3:NET Namespace
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 创建新的网络 namespace
|
||||
|
||||
|
||||
@@ -33,8 +33,6 @@ flowchart LR
|
||||
|
||||
### 12.3.2 cgroups 的历史
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 时间 | 事件 |
|
||||
|------|------|
|
||||
| 2006 | Google 工程师提出 cgroups 概念 |
|
||||
@@ -46,8 +44,6 @@ flowchart LR
|
||||
|
||||
### 12.3.3 cgroups 可以限制的资源
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 资源类型 | 子系统 | 说明 |
|
||||
|---------|--------|------|
|
||||
| **CPU** | `cpu`, `cpuset` | CPU 使用时间和核心分配 |
|
||||
@@ -64,8 +60,6 @@ Docker 提供了丰富的参数来配置容器的资源限制,主要包括内
|
||||
|
||||
#### 内存限制
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 限制容器最多使用 512MB 内存
|
||||
|
||||
@@ -89,8 +83,6 @@ $ docker run --memory-reservation 256m myapp
|
||||
|
||||
#### CPU 限制
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 限制使用 1.5 个 CPU 核心
|
||||
|
||||
@@ -114,8 +106,6 @@ $ docker run --cpu-shares=512 myapp
|
||||
|
||||
#### 磁盘 I/O 限制
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 限制设备写入速度为 10MB/s
|
||||
|
||||
@@ -132,8 +122,6 @@ $ docker run --device-write-iops /dev/sda:100 myapp
|
||||
|
||||
#### 进程数限制
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 限制最多 100 个进程
|
||||
|
||||
@@ -144,8 +132,6 @@ $ docker run --pids-limit=100 myapp
|
||||
|
||||
### 12.3.5 查看容器资源使用
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 实时监控所有容器的资源使用
|
||||
|
||||
@@ -167,12 +153,8 @@ $ docker inspect mycontainer --format '{{json .HostConfig}}' | jq
|
||||
|
||||
### 12.3.6 资源限制的效果
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 内存超限
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 启动限制 100MB 内存的容器
|
||||
|
||||
@@ -191,8 +173,6 @@ abc123 Exited (137) 5 seconds ago hopeful_darwin
|
||||
|
||||
#### CPU 限制验证
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 不限制 CPU
|
||||
|
||||
@@ -211,8 +191,6 @@ $ docker run --rm --cpus=1 stress --cpu 4
|
||||
|
||||
### 12.3.7 cgroups v1 vs v2
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 特性 | cgroups v1 | cgroups v2 |
|
||||
|------|-----------|-----------|
|
||||
| 层级结构 | 多层级 (每个资源单独)| 统一层级 |
|
||||
@@ -221,14 +199,8 @@ $ docker run --rm --cpus=1 stress --cpu 4
|
||||
| PSI (压力监控)| ❌ | ✅ |
|
||||
| rootless 容器 | 部分支持 | 完整支持 |
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 检查系统使用的版本
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 查看 cgroup 版本
|
||||
|
||||
@@ -271,8 +243,6 @@ services:
|
||||
|
||||
#### 1. 始终设置内存限制
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 防止 OOM 影响宿主机
|
||||
|
||||
@@ -281,16 +251,12 @@ $ docker run -m 1g myapp
|
||||
|
||||
#### 2. 为关键应用设置 CPU 保证
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker run --cpus=2 --cpu-shares=2048 critical-app
|
||||
```
|
||||
|
||||
#### 3. 监控资源使用
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 配合 Prometheus + cAdvisor 监控
|
||||
|
||||
|
||||
@@ -107,8 +107,6 @@ Docker 可使用多种联合文件系统实现:
|
||||
|
||||
#### 各发行版推荐
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| Linux 发行版 | 推荐存储驱动 |
|
||||
|-------------|-------------|
|
||||
| Ubuntu 16.04+ | overlay2 |
|
||||
@@ -119,8 +117,6 @@ Docker 可使用多种联合文件系统实现:
|
||||
|
||||
#### 查看当前存储驱动
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker info | grep "Storage Driver"
|
||||
Storage Driver: overlay2
|
||||
@@ -152,14 +148,8 @@ flowchart TD
|
||||
- **workdir**:OverlayFS 的工作目录
|
||||
- **merged**:联合挂载后的视图
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 文件操作行为
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 操作 | 行为 |
|
||||
|------|------|
|
||||
| **读取** | 从上到下查找第一个匹配的文件 |
|
||||
@@ -171,8 +161,6 @@ flowchart TD
|
||||
|
||||
### 12.4.6 查看镜像层
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 查看镜像的层信息
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
## 12.7 本章小结
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| Namespace | 隔离内容 | 一句话说明 |
|
||||
|-----------|---------|-----------|
|
||||
| PID | 进程 ID | 容器有自己的进程树 |
|
||||
|
||||
Reference in New Issue
Block a user