Fix and improve

This commit is contained in:
Baohua Yang
2026-02-12 16:51:50 -08:00
parent bae82e993a
commit 0835f8467a
100 changed files with 280 additions and 622 deletions

View File

@@ -1,5 +1,3 @@
## 14.2 命名空间
命名空间Namespace Linux 内核的一个强大特性为容器提供了隔离的运行环境
### 什么是 Namespace
@@ -39,11 +37,11 @@ Linux 内核提供了以下几种 NamespaceDocker 容器使用了全部:
PID Namespace 负责进程 ID 的隔离使得容器内的进程彼此不可见
#### 作用
#### PID 作用
隔离进程 ID让每个容器有自己的进程编号空间
#### 效果
#### PID 隔离效果
运行以下命令
@@ -62,7 +60,7 @@ PID USER COMMAND
2 root nginx: worker process
```
#### 关键点
#### PID 关键点
- 容器内的 PID 1 进程特殊重要它是容器的主进程退出则容器停止
- 容器内无法看到宿主机或其他容器的进程
@@ -74,13 +72,11 @@ PID USER COMMAND
NET Namespace 负责网络栈的隔离包括网卡路由表和 iptables 规则等
#### 作用
#### NET 作用
隔离网络栈每个容器拥有独立的网络环境
#### 效果
具体内容如下
#### NET 隔离效果
```
宿主机 容器
@@ -91,7 +87,7 @@ NET Namespace 负责网络栈的隔离,包括网卡、路由表和 iptables
└─────────────────────┘ └─────────────────────┘
```
#### 关键点
#### NET 关键点
- 每个容器有独立的网卡IP路由表iptables 规则
- 多个容器可以监听相同端口如都监听 80
@@ -103,13 +99,11 @@ NET Namespace 负责网络栈的隔离,包括网卡、路由表和 iptables
MNT Namespace 负责文件系统挂载点的隔离确保容器看到独立的文件系统视图
#### 作用
#### MNT 作用
隔离文件系统挂载点每个容器有自己的根目录
#### 效果
具体内容如下
#### MNT 隔离效果
```
宿主机文件系统: 容器内看到的:
@@ -138,11 +132,11 @@ MNT Namespace 负责文件系统挂载点的隔离,确保容器看到独立的
UTS Namespace 主要用于隔离主机名和域名
#### 作用
#### UTS 作用
隔离主机名和域名让每个容器可以有自己的主机名
#### 效果
#### UTS 隔离效果
运行以下命令
@@ -166,7 +160,7 @@ UTS = "UNIX Time-sharing System",是历史遗留的名称。
IPC Namespace 用于隔离进程间通信资源 System V IPC POSIX 消息队列
#### 作用
#### IPC 作用
隔离 System V IPC POSIX 消息队列
@@ -176,7 +170,7 @@ IPC Namespace 用于隔离进程间通信资源,如 System V IPC 和 POSIX 消
- 消息队列message queues
- 共享内存shared memory
#### 关键点
#### IPC 关键点
- 同一容器内的进程可以通过 IPC 通信
- 不同容器的进程无法通过 IPC 通信除非显式共享
@@ -187,13 +181,11 @@ IPC Namespace 用于隔离进程间通信资源,如 System V IPC 和 POSIX 消
USER Namespace 允许将容器内的用户 ID 映射到宿主机的不同用户 ID
#### 作用
#### USER 作用
隔离用户和组 ID实现权限隔离
#### 效果
具体内容如下
#### USER 隔离效果
```
容器内 宿主机
@@ -305,5 +297,5 @@ Namespace 提供了隔离但不是安全边界:
- [控制组Cgroups](14.3_cgroups.md)资源限制机制
- [联合文件系统](14.4_ufs.md)分层存储的实现
- [安全](../security/README.md)容器安全实践
- [安全](../11_ops/security/README.md)容器安全实践
- [Linux Namespace 官方文档](https://man7.org/linux/man-pages/man7/namespaces.7.html)

View File

@@ -172,8 +172,7 @@ abc123 Exited (137) 5 seconds ago hopeful_darwin
## 137 = 128 + 9表示被 SIGKILL9 杀死
具体内容如下:
...
```
#### CPU 限制验证
@@ -191,8 +190,7 @@ $ docker run --rm stress --cpu 4
$ docker run --rm --cpus=1 stress --cpu 4
## 只能使用约 100% CPU1 个核心)
具体内容如下:
...
```
---
@@ -299,5 +297,5 @@ $ docker run -d --name cadvisor \
### 延伸阅读
- [命名空间](14.2_namespace.md)资源隔离
- [安全](../security/README.md)容器安全概述
- [安全](../11_ops/security/README.md)容器安全概述
- [Docker Stats](../05_container/README.md)监控容器资源

View File

@@ -37,8 +37,6 @@ Docker 选择联合文件系统作为其存储驱动,主要基于以下几个
#### 1. 镜像分层复用
具体内容如下
```
nginx:alpine myapp:latest
│ │
@@ -202,8 +200,6 @@ $ docker inspect nginx:alpine --format '{{json .GraphDriver.Data}}' | jq
#### 1. 减少镜像层数
具体内容如下
```docker
## ❌ 每条命令创建一层