mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 12:21:17 +00:00
style: apply global formatting fixes (struct, spacing, zhlint)
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
命名空间(Namespace)是 Linux 内核的一个强大特性,为容器提供了隔离的运行环境。
|
||||
命名空间 (Namespace) 是 Linux 内核的一个强大特性,为容器提供了隔离的运行环境。
|
||||
|
||||
### 什么是 Namespace
|
||||
## 什么是 Namespace
|
||||
|
||||
> **Namespace 是 Linux 内核提供的资源隔离机制,它让容器内的进程仿佛运行在独立的操作系统中。**Namespace 是容器技术的核心基础之一。它回答了一个关键问题:**如何让一个进程"以为"自己独占整个系统?**
|
||||
> **Namespace 是 Linux 内核提供的资源隔离机制,它让容器内的进程仿佛运行在独立的操作系统中。**Namespace 是容器技术的核心基础之一。它回答了一个关键问题:**如何让一个进程 “以为” 自己独占整个系统?**
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@@ -71,7 +71,7 @@ PID USER COMMAND
|
||||
|
||||
- 容器内的 PID 1 进程特殊重要——它是容器的主进程,退出则容器停止
|
||||
- 容器内无法看到宿主机或其他容器的进程
|
||||
- 宿主机可以看到所有容器内的进程(但 PID 不同)
|
||||
- 宿主机可以看到所有容器内的进程 (但 PID 不同)
|
||||
|
||||
---
|
||||
|
||||
@@ -85,6 +85,8 @@ NET Namespace 负责网络栈的隔离,包括网卡、路由表和 iptables
|
||||
|
||||
#### NET 隔离效果
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph Host ["宿主机"]
|
||||
@@ -105,7 +107,7 @@ flowchart LR
|
||||
#### NET 关键点
|
||||
|
||||
- 每个容器有独立的网卡、IP、路由表、iptables 规则
|
||||
- 多个容器可以监听相同端口(如都监听 80)
|
||||
- 多个容器可以监听相同端口 (如都监听 80)
|
||||
- Docker 使用 veth pair 连接容器网络和宿主机网桥
|
||||
|
||||
---
|
||||
@@ -120,6 +122,8 @@ MNT Namespace 负责文件系统挂载点的隔离,确保容器看到独立的
|
||||
|
||||
#### MNT 隔离效果
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```
|
||||
宿主机文件系统: 容器内看到的:
|
||||
/ / ← 容器的根目录
|
||||
@@ -167,7 +171,7 @@ $ docker run --hostname mycontainer ubuntu hostname
|
||||
mycontainer
|
||||
```
|
||||
|
||||
UTS = "UNIX Time-sharing System",是历史遗留的名称。
|
||||
UTS = “UNIX Time-sharing System”,是历史遗留的名称。
|
||||
|
||||
---
|
||||
|
||||
@@ -181,14 +185,14 @@ IPC Namespace 用于隔离进程间通信资源,如 System V IPC 和 POSIX 消
|
||||
|
||||
#### 隔离的资源
|
||||
|
||||
- 信号量(semaphores)
|
||||
- 消息队列(message queues)
|
||||
- 共享内存(shared memory)
|
||||
- 信号量 (semaphores)
|
||||
- 消息队列 (message queues)
|
||||
- 共享内存 (shared memory)
|
||||
|
||||
#### IPC 关键点
|
||||
|
||||
- 同一容器内的进程可以通过 IPC 通信
|
||||
- 不同容器的进程无法通过 IPC 通信(除非显式共享)
|
||||
- 不同容器的进程无法通过 IPC 通信 (除非显式共享)
|
||||
|
||||
---
|
||||
|
||||
@@ -202,6 +206,8 @@ USER Namespace 允许将容器内的用户 ID 映射到宿主机的不同用户
|
||||
|
||||
#### USER 隔离效果
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph Container ["容器内"]
|
||||
|
||||
Reference in New Issue
Block a user