style: apply global formatting fixes (struct, spacing, zhlint)

This commit is contained in:
Baohua Yang
2026-02-21 11:08:52 -08:00
parent ad68b2d973
commit 79ac9c639a
159 changed files with 1708 additions and 882 deletions

View File

@@ -1,5 +1,7 @@
## 5.4 进入容器
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 为什么需要进入容器
使用 `-d` 参数启动容器后容器在后台运行以下场景需要进入容器内部操作
@@ -22,7 +24,9 @@ Docker 提供两种进入容器的命令:
---
### docker exec推荐
### docker exec (推荐)
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### docker exec 基本用法
@@ -115,7 +119,9 @@ root@69d137adef7a:/# # 有提示符
---
### docker attach谨慎使用
### docker attach (谨慎使用)
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### docker attach 基本用法
@@ -127,7 +133,7 @@ $ docker attach 容器名
#### 工作原理
`attach` 会附加到容器的**主进程**PID 1的标准输入输出
`attach` 会附加到容器的**主进程** (PID 1) 的标准输入输出
```mermaid
flowchart LR
@@ -228,7 +234,9 @@ flowchart LR
### 最佳实践
#### 1. 首选 docker exec
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 1首选 docker exec
运行以下命令
@@ -246,16 +254,16 @@ $ docker exec myapp tail -f /var/log/app.log
$ docker exec myapp python manage.py migrate
```
#### 2. 生产环境避免进入容器
#### 2生产环境避免进入容器
笔者建议生产环境应尽量避免进入容器直接操作而是通过
- 日志系统查看日志 `docker logs` 或集中式日志
- 日志系统查看日志 ( `docker logs` 或集中式日志)
- 监控系统查看状态
- 重新部署而非手动修改
#### 3. shell 镜像的处理
#### 3 shell 镜像的处理
某些精简镜像如基于 `scratch` `distroless`没有 shell
某些精简镜像 (如基于 `scratch` `distroless`) 没有 shell
```bash
## 这会失败
@@ -272,11 +280,13 @@ $ docker debug myapp
### 常见问题
#### Q: exec 进入后看不到其他终端的操作
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### Qexec 进入后看不到其他终端的操作
这是正常的exec 启动的是独立进程多个 exec 会话互不影响
#### Q: 容器没有 bash
#### Q容器没有 bash
尝试使用 sh
@@ -284,7 +294,7 @@ $ docker debug myapp
$ docker exec -it myapp /bin/sh
```
#### Q: 需要 root 权限
#### Q需要 root 权限
运行以下命令