mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 12:21:17 +00:00
style(docs): standardize heading formats and numbering
- Enforce Level 1-3 structural numbering based on SUMMARY.md hierarchy - Remove structural numbering from Level 4+ headings - Eliminate single child headings by converting to bold text - Auto-inject summary text for headings with multiple children missing intro text - Exclude Appendix chapters from structural numbering - Avoid modifying code block contents - Add script to detect non-standard English usage in headers
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
本节将详细介绍 Docker 容器的启动方式,包括新建启动和重新启动已停止的容器。
|
||||
|
||||
### 启动方式概述
|
||||
### 5.1.1 启动方式概述
|
||||
|
||||
启动容器有两种方式:
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
由于 Docker 容器非常轻量,实际使用中常常是随时删除和新建容器,而不是反复重启同一个容器。
|
||||
|
||||
### 新建并启动
|
||||
### 5.1.2 新建并启动
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -61,7 +61,7 @@ bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr
|
||||
root@af8bae53bdd3:/# exit # 退出容器
|
||||
```
|
||||
|
||||
### docker run 的完整流程
|
||||
### 5.1.3 docker run 的完整流程
|
||||
|
||||
执行 `docker run` 时,Docker 在后台完成以下操作:
|
||||
|
||||
@@ -82,7 +82,7 @@ flowchart TD
|
||||
Step5["5. 命令执行完毕,容器停止"]
|
||||
```
|
||||
|
||||
### 常用启动选项
|
||||
### 5.1.4 常用启动选项
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -161,7 +161,7 @@ $ docker run -m 512m nginx
|
||||
$ docker run --cpus=1.5 nginx
|
||||
```
|
||||
|
||||
### 启动已终止容器
|
||||
### 5.1.5 启动已终止容器
|
||||
|
||||
使用 `docker start` 重新启动已停止的容器:
|
||||
|
||||
@@ -181,7 +181,7 @@ $ docker start myubuntu
|
||||
$ docker start -ai myubuntu
|
||||
```
|
||||
|
||||
### 容器内进程的特点
|
||||
### 5.1.6 容器内进程的特点
|
||||
|
||||
容器内只运行指定的应用程序及其必需资源:
|
||||
|
||||
@@ -196,7 +196,7 @@ root@ba267838cc1b:/# ps
|
||||
|
||||
> 💡 笔者提示:容器内的 PID 1 进程很重要——它是容器的主进程,该进程退出则容器停止。详见[后台运行](5.2_daemon.md)章节。
|
||||
|
||||
### 常见问题
|
||||
### 5.1.7 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
在生产环境中,我们通常需要容器持续运行,不受终端关闭的影响。本节将深入讲解如何让容器在后台运行,以及理解容器生命周期的核心概念。
|
||||
|
||||
### 核心概念:前台 vs 后台
|
||||
### 5.2.1 核心概念:前台 vs 后台
|
||||
|
||||
当你在终端运行一个程序时,有两种模式:
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
Docker 容器默认是 **前台运行** 的。使用 `-d` (detach) 参数可以让容器在后台运行。
|
||||
|
||||
### 基本使用
|
||||
### 5.2.2 基本使用
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -49,7 +49,7 @@ $ docker run -d ubuntu:24.04 /bin/sh -c "while true; do echo hello world; sleep
|
||||
- 终端立即释放,可以继续执行其他命令
|
||||
- 输出不会直接显示 (需要用 `docker logs` 查看)
|
||||
|
||||
### 深入理解:容器为什么会 “立即退出”?
|
||||
### 5.2.3 深入理解:容器为什么会 “立即退出”?
|
||||
|
||||
> **这是初学者最常遇到的困惑。** 理解这个问题,你就理解了 Docker 的核心设计理念。
|
||||
|
||||
@@ -97,7 +97,7 @@ flowchart TD
|
||||
| `docker run -d nginx` 后改了配置 | 配置错误导致 nginx 启动失败 | 查看 `docker logs` |
|
||||
| 自定义镜像容器启动即退 | Dockerfile 的 CMD 执行完毕 | 确保 CMD 是前台进程 |
|
||||
|
||||
### 查看后台容器
|
||||
### 5.2.4 查看后台容器
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -139,7 +139,7 @@ $ docker container ls -a
|
||||
|
||||
加上 `-a` 参数可以看到所有容器,包括已停止的。这对于调试 “容器启动即退出” 的问题非常有用。
|
||||
|
||||
### 最佳实践
|
||||
### 5.2.5 最佳实践
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -205,7 +205,7 @@ $ docker logs -f myapp
|
||||
$ docker logs -t myapp
|
||||
```
|
||||
|
||||
### 常见问题排查
|
||||
### 5.2.6 常见问题排查
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -252,7 +252,7 @@ $ docker attach mycontainer
|
||||
|
||||
> **注意**:`attach` 会连接到容器的主进程。如果主进程不是交互式的,你可能只能看到输出。使用 `Ctrl+P` `Ctrl+Q` 可以安全退出而不停止容器。
|
||||
|
||||
### 延伸阅读
|
||||
### 5.2.7 延伸阅读
|
||||
|
||||
- [进入容器](5.4_attach_exec.md):如何进入正在运行的容器执行命令
|
||||
- [容器日志](../appendix/20.1_best_practices.md):生产环境的日志管理最佳实践
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
本节将介绍如何终止一个运行中的容器,以及几种不同的终止方式及其区别。
|
||||
|
||||
### 终止方式概述
|
||||
### 5.3.1 终止方式概述
|
||||
|
||||
终止容器有三种方式:
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
---
|
||||
|
||||
### docker stop (推荐)
|
||||
### 5.3.2 docker stop (推荐)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -67,7 +67,7 @@ $ docker stop $(docker ps -q)
|
||||
|
||||
---
|
||||
|
||||
### docker kill
|
||||
### 5.3.3 docker kill
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -104,7 +104,7 @@ $ docker kill -s TERM mycontainer
|
||||
|
||||
---
|
||||
|
||||
### 容器自动终止
|
||||
### 5.3.4 容器自动终止
|
||||
|
||||
容器的生命周期与主进程绑定。主进程退出时,容器自动停止:
|
||||
|
||||
@@ -121,7 +121,7 @@ $ docker run ubuntu echo "Hello" # echo 执行完 → 容器停止
|
||||
|
||||
---
|
||||
|
||||
### 查看已停止的容器
|
||||
### 5.3.5 查看已停止的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -144,7 +144,7 @@ c5d3a5e8f7b2 nginx "nginx" Up 5 minutes mynginx
|
||||
|
||||
---
|
||||
|
||||
### 重新启动容器
|
||||
### 5.3.6 重新启动容器
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -176,7 +176,7 @@ $ docker restart -t 30 容器名
|
||||
|
||||
---
|
||||
|
||||
### 生命周期状态图
|
||||
### 5.3.7 生命周期状态图
|
||||
|
||||
具体内容如下:
|
||||
|
||||
@@ -198,7 +198,7 @@ stateDiagram-v2
|
||||
|
||||
---
|
||||
|
||||
### 批量操作
|
||||
### 5.3.8 批量操作
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -228,7 +228,7 @@ $ docker stop $(docker ps -q) && docker container prune -f
|
||||
|
||||
---
|
||||
|
||||
### 常见问题
|
||||
### 5.3.9 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 为什么需要进入容器
|
||||
### 5.4.1 为什么需要进入容器
|
||||
|
||||
使用 `-d` 参数启动容器后,容器在后台运行。以下场景需要进入容器内部操作:
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
| **检查状态** | 查看进程、网络连接、文件系统 |
|
||||
| **开发测试** | 交互式测试命令、验证环境 |
|
||||
|
||||
### 两种进入方式
|
||||
### 5.4.2 两种进入方式
|
||||
|
||||
Docker 提供两种进入容器的命令:
|
||||
|
||||
@@ -24,7 +24,7 @@ Docker 提供两种进入容器的命令:
|
||||
|
||||
---
|
||||
|
||||
### docker exec (推荐)
|
||||
### 5.4.3 docker exec (推荐)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -121,7 +121,7 @@ root@69d137adef7a:/# # 有提示符
|
||||
|
||||
---
|
||||
|
||||
### docker attach (谨慎使用)
|
||||
### 5.4.4 docker attach (谨慎使用)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -197,7 +197,7 @@ CONTAINER ID IMAGE STATUS NAMES
|
||||
|
||||
---
|
||||
|
||||
### exec vs attach 对比
|
||||
### 5.4.5 exec vs attach 对比
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
@@ -236,7 +236,7 @@ flowchart LR
|
||||
|
||||
---
|
||||
|
||||
### 最佳实践
|
||||
### 5.4.6 最佳实践
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -283,7 +283,7 @@ $ docker debug myapp
|
||||
|
||||
---
|
||||
|
||||
### 常见问题
|
||||
### 5.4.7 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
当我们需要迁移容器或者备份容器时,可以使用 Docker 的导入和导出功能。本节将介绍这两个命令的使用方法。
|
||||
|
||||
### 导出容器
|
||||
### 5.5.1 导出容器
|
||||
|
||||
如果要导出本地某个容器,可以使用 `docker export` 命令。
|
||||
```bash
|
||||
@@ -14,7 +14,7 @@ $ docker export 7691a814370e > ubuntu.tar
|
||||
|
||||
这样将导出容器快照到本地文件。
|
||||
|
||||
### 导入容器快照
|
||||
### 5.5.2 导入容器快照
|
||||
|
||||
可以使用 `docker import` 从容器快照文件中再导入为镜像,例如
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
随着容器的创建和停止,系统中会积累大量的容器。本节将介绍如何删除不再需要的容器,以及如何清理所有停止的容器。
|
||||
|
||||
### 基本用法
|
||||
### 5.6.1 基本用法
|
||||
|
||||
使用 `docker rm` 删除已停止的容器:
|
||||
|
||||
@@ -14,7 +14,7 @@ $ docker rm 容器名或ID
|
||||
|
||||
---
|
||||
|
||||
### 删除选项
|
||||
### 5.6.2 删除选项
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
@@ -65,7 +65,7 @@ $ docker rm -v mycontainer
|
||||
|
||||
---
|
||||
|
||||
### 批量删除
|
||||
### 5.6.3 批量删除
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -125,7 +125,7 @@ $ docker container prune --filter "until=24h"
|
||||
|
||||
---
|
||||
|
||||
### 常用过滤条件
|
||||
### 5.6.4 常用过滤条件
|
||||
|
||||
`docker ps` 的过滤条件可以配合 `rm` 使用:
|
||||
|
||||
@@ -158,7 +158,7 @@ $ docker rm $(docker ps -aq -f status=created)
|
||||
|
||||
---
|
||||
|
||||
### 容器与镜像的依赖关系
|
||||
### 5.6.5 容器与镜像的依赖关系
|
||||
|
||||
> 有容器依赖的镜像无法删除。
|
||||
|
||||
@@ -176,7 +176,7 @@ $ docker image rm nginx
|
||||
|
||||
---
|
||||
|
||||
### 清理策略建议
|
||||
### 5.6.6 清理策略建议
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -235,7 +235,7 @@ docker system df
|
||||
|
||||
---
|
||||
|
||||
### 常见问题
|
||||
### 5.6.7 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
## 本章小结
|
||||
## 5.7 本章小结
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
| 后台运行 | `docker run -d` | 用于服务类应用 |
|
||||
| 启动已停止的容器 | `docker start` | 重用已有容器 |
|
||||
|
||||
### 延伸阅读
|
||||
### 5.7.1 延伸阅读
|
||||
|
||||
- [后台运行](5.2_daemon.md):理解 `-d` 参数和容器生命周期
|
||||
- [进入容器](5.4_attach_exec.md):操作运行中的容器
|
||||
@@ -24,7 +24,7 @@
|
||||
| 重启 | `docker restart` | 停止后立即启动 |
|
||||
| 停止全部 | `docker stop $(docker ps -q)` | 停止所有运行中容器 |
|
||||
|
||||
### 延伸阅读
|
||||
### 5.7.2 延伸阅读
|
||||
|
||||
- [启动容器](../05_container/5.1_run.md):容器启动详解
|
||||
- [删除容器](5.6_rm.md):清理容器
|
||||
@@ -36,7 +36,7 @@
|
||||
| 执行单条命令 | `docker exec 容器名 命令` |
|
||||
| 查看主进程输出 | `docker attach 容器名` (慎用)|
|
||||
|
||||
### 延伸阅读
|
||||
### 5.7.3 延伸阅读
|
||||
|
||||
- [后台运行](5.2_daemon.md):理解容器主进程
|
||||
- [查看容器](5.1_run.md):列出和过滤容器
|
||||
@@ -50,7 +50,7 @@
|
||||
| 清理所有已停止容器 | `docker container prune` |
|
||||
| 删除所有容器 | `docker rm -f $(docker ps -aq)` |
|
||||
|
||||
### 延伸阅读
|
||||
### 5.7.4 延伸阅读
|
||||
|
||||
- [终止容器](5.3_stop.md):优雅停止容器
|
||||
- [删除镜像](../04_image/4.3_rm.md):清理镜像
|
||||
|
||||
Reference in New Issue
Block a user