chore: remove unused historic image files

This commit is contained in:
Baohua Yang
2026-02-21 16:43:31 -08:00
parent 79ac9c639a
commit 6aa7a51fef
124 changed files with 1001 additions and 492 deletions

View File

@@ -5,6 +5,7 @@
### 启动方式概述
启动容器有两种方式
- **新建并启动**基于镜像创建新容器
- **重新启动**将已终止的容器重新运行
@@ -46,8 +47,8 @@ root@af8bae53bdd3:/#
| 参数 | 作用 |
|------|------|
| `-i` | 保持标准输入stdin打开允许输入 |
| `-t` | 分配伪终端pseudo-TTY提供终端界面 |
| `-i` | 保持标准输入 (stdin) 打开允许输入 |
| `-t` | 分配伪终端 (pseudo-TTY)提供终端界面 |
| `-it` | 两者组合使用获得交互式终端 |
在交互模式下可以执行命令
@@ -87,9 +88,11 @@ flowchart TD
#### 基础选项
相关信息如下表
| 选项 | 说明 | 示例 |
|------|------|------|
| `-d` | 后台运行detach | `docker run -d nginx` |
| `-d` | 后台运行 (detach)| `docker run -d nginx` |
| `-it` | 交互式终端 | `docker run -it ubuntu bash` |
| `--name` | 指定容器名称 | `docker run --name myapp nginx` |
| `--rm` | 退出后自动删除容器 | `docker run --rm ubuntu echo hi` |

View File

@@ -28,6 +28,7 @@ hello world
```
容器会把输出的结果 (STDOUT) 打印到宿主机上面此时
- 终端被占用无法执行其他命令
- `Ctrl+C` 会终止容器
- 关闭终端窗口容器也会停止
@@ -42,6 +43,7 @@ $ docker run -d ubuntu:24.04 /bin/sh -c "while true; do echo hello world; sleep
```
使用 `-d` 参数后
- 容器在后台运行
- 返回容器的完整 ID
- 终端立即释放可以继续执行其他命令
@@ -73,6 +75,7 @@ flowchart TD
```
当你运行 `docker run -d ubuntu:24.04`
1. 容器启动
2. 没有指定命令默认执行 `/bin/bash`
3. 但没有交互式终端 (没有 `-it` 参数)bash 发现没有输入源
@@ -80,11 +83,14 @@ flowchart TD
5. 主进程退出容器停止
**关键理解**
- `-d` 参数**不是**让容器 一直运行
- `-d` 参数是让容器 在后台运行能运行多久取决于主进程
#### 常见的 立即退出 场景
相关信息如下表
| 场景 | 原因 | 解决方案 |
|------|------|---------|
| `docker run -d ubuntu` | 默认 bash 无输入立即退出 | 指定长期运行的命令 |

View File

@@ -81,6 +81,8 @@ $ docker kill 容器名或ID
#### stop 的区别
相关信息如下表
| 命令 | 信号 | 使用场景 |
|------|------|---------|
| `docker stop` | SIGTERM SIGKILL | 正常停止让应用优雅退出 |
@@ -135,10 +137,10 @@ c5d3a5e8f7b2 nginx "nginx" Up 5 minutes mynginx
| 状态 | 说明 |
|------|------|
| `Up X minutes` | 运行中 |
| `Exited (0)` | 正常退出退出码 0 |
| `Exited (1)` | 异常退出非零退出码 |
| `Exited (137)` | SIGKILL 终止128 + 9 |
| `Exited (143)` | SIGTERM 终止128 + 15 |
| `Exited (0)` | 正常退出 (退出码 0)|
| `Exited (1)` | 异常退出 (非零退出码)|
| `Exited (137)` | SIGKILL 终止 (128 + 9)|
| `Exited (143)` | SIGTERM 终止 (128 + 15)|
---
@@ -235,6 +237,7 @@ $ docker stop $(docker ps -q) && docker container prune -f
原因应用没有正确处理 SIGTERM 信号需要等待超时后强制终止
解决方案
1. 在应用中正确处理 SIGTERM
2. 使用 `docker stop -t 0` 立即终止
3. 检查 Dockerfile 中的 `STOPSIGNAL` 配置

View File

@@ -44,12 +44,14 @@ $ docker exec -it 容器名 /bin/sh
#### 参数说明
相关信息如下表
| 参数 | 作用 |
|------|------|
| `-i` | 保持标准输入打开interactive |
| `-t` | 分配伪终端TTY |
| `-i` | 保持标准输入打开 (interactive)|
| `-t` | 分配伪终端 (TTY)|
| `-it` | 两者组合获得完整交互体验 |
| `-u` | 指定用户 `-u root` |
| `-u` | 指定用户 ( `-u root`)|
| `-w` | 指定工作目录 |
| `-e` | 设置环境变量 |
@@ -197,6 +199,8 @@ CONTAINER ID IMAGE STATUS NAMES
### exec vs attach 对比
相关信息如下表
| 特性 | docker exec | docker attach |
|------|-------------|---------------|
| **工作方式** | 在容器内启动新进程 | 附加到主进程 |
@@ -257,6 +261,7 @@ $ docker exec myapp python manage.py migrate
#### 2生产环境避免进入容器
笔者建议生产环境应尽量避免进入容器直接操作而是通过
- 日志系统查看日志 ( `docker logs` 或集中式日志)
- 监控系统查看状态
- 重新部署而非手动修改

View File

@@ -16,6 +16,8 @@ $ docker rm 容器名或ID
### 删除选项
相关信息如下表
| 选项 | 说明 | 示例 |
|------|------|------|
| 无参数 | 删除已停止的容器 | `docker rm mycontainer` |
@@ -258,6 +260,7 @@ $ docker rm -f mycontainer
#### Q删除后磁盘空间没释放
可能原因
1. 容器的数据卷未删除 (使用 `-v` 参数)
2. 镜像未删除
3. 构建缓存未清理

View File

@@ -1,5 +1,7 @@
## 本章小结
相关信息如下表
| 操作 | 命令 | 说明 |
|------|------|------|
| 新建并运行 | `docker run` | 最常用的启动方式 |
@@ -32,7 +34,7 @@
|------|---------|
| 进入容器调试 | `docker exec -it 容器名 bash` |
| 执行单条命令 | `docker exec 容器名 命令` |
| 查看主进程输出 | `docker attach 容器名`慎用 |
| 查看主进程输出 | `docker attach 容器名` (慎用)|
### 延伸阅读