mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-13 21:31:09 +00:00
Continue to fix format issues
This commit is contained in:
@@ -15,20 +15,19 @@ USER <UID>[:<GID>]
|
||||
|
||||
> 笔者强调:以非 root 用户运行容器是最重要的安全实践之一。
|
||||
|
||||
```
|
||||
root 用户运行的风险:
|
||||
┌────────────────────────────────────────────────────────┐
|
||||
│ 容器内 root ←─ 可能逃逸 ─→ 宿主机 root │
|
||||
│ │ │ │
|
||||
│ └── 漏洞利用 ───────────────→ 完全控制宿主机 │
|
||||
└────────────────────────────────────────────────────────┘
|
||||
|
||||
非 root 用户运行:
|
||||
┌────────────────────────────────────────────────────────┐
|
||||
│ 容器内普通用户 ──逃逸后──→ 宿主机普通用户 │
|
||||
│ │ │ │
|
||||
│ └── 权限受限,危害降低 ─────→ 无法控制系统 │
|
||||
└────────────────────────────────────────────────────────┘
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph Root ["root 用户运行的风险:"]
|
||||
direction TB
|
||||
R_C["容器内 root"] -- 可能逃逸 --> R_H["宿主机 root"]
|
||||
R_C -- 漏洞利用 --> R_Control["完全控制宿主机"]
|
||||
end
|
||||
|
||||
subgraph NonRoot ["非 root 用户运行:"]
|
||||
direction TB
|
||||
NR_C["容器内普通用户"] -- 逃逸后 --> NR_H["宿主机普通用户"]
|
||||
NR_C -- 权限受限,危害降低 --> NR_Safe["无法控制系统"]
|
||||
end
|
||||
```
|
||||
|
||||
---
|
||||
@@ -279,19 +278,3 @@ RUN mkdir -p /app/data && chown appuser:appuser /app/data
|
||||
2. 在运行时映射端口:`docker run -p 80:8080`
|
||||
|
||||
---
|
||||
|
||||
### 本章小结
|
||||
|
||||
| 要点 | 说明 |
|
||||
|------|------|
|
||||
| **作用** | 切换后续指令的执行用户 |
|
||||
| **语法** | `USER username` 或 `USER UID:GID` |
|
||||
| **前提** | 用户必须已存在 |
|
||||
| **运行时覆盖** | `docker run -u` |
|
||||
| **切换工具** | 使用 gosu,不用 su/sudo |
|
||||
|
||||
### 延伸阅读
|
||||
|
||||
- [安全](../11_ops/security/README.md):容器安全实践
|
||||
- [ENTRYPOINT](7.5_entrypoint.md):入口脚本中的用户切换
|
||||
- [最佳实践](../16_appendix/16.1_best_practices.md):Dockerfile 安全
|
||||
|
||||
Reference in New Issue
Block a user