mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 11:15:39 +00:00
Remove blank lines after code block markers
This commit is contained in:
@@ -25,7 +25,6 @@ flowchart LR
|
||||
|
||||
H4 -. "(实际是宿主机的 1234)" .- C1
|
||||
```
|
||||
|
||||
### 12.2.2 Namespace 的类型
|
||||
|
||||
Linux 内核提供了以下几种 Namespace,Docker 容器使用了全部:
|
||||
@@ -53,7 +52,6 @@ PID Namespace 负责进程 ID 的隔离,使得容器内的进程彼此不可
|
||||
#### PID 隔离效果
|
||||
|
||||
```bash
|
||||
|
||||
## 宿主机上查看进程
|
||||
|
||||
$ ps aux | grep nginx
|
||||
@@ -67,7 +65,6 @@ PID USER COMMAND
|
||||
1 root nginx: master process ← 在容器内是 PID 1
|
||||
2 root nginx: worker process
|
||||
```
|
||||
|
||||
#### PID 关键点
|
||||
|
||||
- 容器内的 PID 1 进程特殊重要——它是容器的主进程,退出则容器停止
|
||||
@@ -102,7 +99,6 @@ flowchart LR
|
||||
|
||||
H2 <--> C2
|
||||
```
|
||||
|
||||
#### NET 关键点
|
||||
|
||||
- 每个容器有独立的网卡、IP、路由表、iptables 规则
|
||||
@@ -133,7 +129,6 @@ MNT Namespace 负责文件系统挂载点的隔离,确保容器看到独立的
|
||||
│ └── merged/ ────┼─── 这个目录成为容器的 /
|
||||
└── ... └── ...
|
||||
```
|
||||
|
||||
#### 与 chroot 的区别
|
||||
|
||||
| 特性 | chroot | MNT Namespace |
|
||||
@@ -155,7 +150,6 @@ UTS Namespace 主要用于隔离主机名和域名。
|
||||
#### UTS 隔离效果
|
||||
|
||||
```bash
|
||||
|
||||
## 宿主机
|
||||
|
||||
$ hostname
|
||||
@@ -166,7 +160,6 @@ my-server
|
||||
$ docker run --hostname mycontainer ubuntu hostname
|
||||
mycontainer
|
||||
```
|
||||
|
||||
UTS = “UNIX Time-sharing System”,是历史遗留的名称。
|
||||
|
||||
---
|
||||
@@ -219,7 +212,6 @@ flowchart LR
|
||||
C1 -- 映射 --> H1
|
||||
C2 -- 映射 --> H2
|
||||
```
|
||||
|
||||
#### 安全意义
|
||||
|
||||
容器内的 root 用户可以映射为宿主机上的普通用户,即使容器被突破,攻击者在宿主机上也只有普通权限。
|
||||
@@ -235,7 +227,6 @@ flowchart LR
|
||||
#### 实验 1:UTS Namespace
|
||||
|
||||
```bash
|
||||
|
||||
## 创建新的 UTS namespace 并启动 shell
|
||||
|
||||
$ sudo unshare --uts /bin/bash
|
||||
@@ -252,11 +243,9 @@ $ exit
|
||||
$ hostname
|
||||
my-server
|
||||
```
|
||||
|
||||
#### 实验 2:PID Namespace
|
||||
|
||||
```bash
|
||||
|
||||
## 创建新的 PID 和 MNT namespace
|
||||
|
||||
$ sudo unshare --pid --mount --fork /bin/bash
|
||||
@@ -272,11 +261,9 @@ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
|
||||
root 1 0.0 0.0 8960 4516 pts/0 S 10:00 0:00 /bin/bash
|
||||
root 8 0.0 0.0 10072 3200 pts/0 R+ 10:00 0:00 ps aux
|
||||
```
|
||||
|
||||
#### 实验 3:NET Namespace
|
||||
|
||||
```bash
|
||||
|
||||
## 创建新的网络 namespace
|
||||
|
||||
$ sudo unshare --net /bin/bash
|
||||
@@ -287,7 +274,6 @@ $ ip addr
|
||||
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 12.2.10 Namespace 的局限性
|
||||
|
||||
Reference in New Issue
Block a user