mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 12:21:17 +00:00
Simplify words and fix format issues
This commit is contained in:
@@ -13,12 +13,8 @@
|
||||
|
||||
### 5.1.2 新建并启动
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 基本语法
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
docker run [选项] 镜像 [命令] [参数...]
|
||||
```
|
||||
@@ -84,12 +80,8 @@ flowchart TD
|
||||
|
||||
### 5.1.4 常用启动选项
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 基础选项
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 选项 | 说明 | 示例 |
|
||||
|------|------|------|
|
||||
| `-d` | 后台运行 (detach)| `docker run -d nginx` |
|
||||
@@ -99,8 +91,6 @@ flowchart TD
|
||||
|
||||
#### 端口映射
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 将容器的 80 端口映射到宿主机的 8080 端口
|
||||
|
||||
@@ -117,8 +107,6 @@ $ docker run -d -p 127.0.0.1:8080:80 nginx
|
||||
|
||||
#### 数据卷挂载
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 挂载命名卷
|
||||
|
||||
@@ -135,8 +123,6 @@ $ docker run -v /host/path:/container/path:ro nginx
|
||||
|
||||
#### 环境变量
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 设置单个环境变量
|
||||
|
||||
@@ -149,8 +135,6 @@ $ docker run --env-file .env myapp
|
||||
|
||||
#### 资源限制
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 限制内存
|
||||
|
||||
@@ -198,8 +182,6 @@ root@ba267838cc1b:/# ps
|
||||
|
||||
### 5.1.7 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Q:容器启动后立即退出
|
||||
|
||||
**原因**:主进程执行完毕或无法保持运行
|
||||
|
||||
@@ -13,12 +13,8 @@ Docker 容器默认是 **前台运行** 的。使用 `-d` (detach) 参数可以
|
||||
|
||||
### 5.2.2 基本使用
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 前台运行 (默认)
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker run ubuntu:24.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
|
||||
hello world
|
||||
@@ -35,8 +31,6 @@ hello world
|
||||
|
||||
#### 后台运行 (使用 -d 参数)
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker run -d ubuntu:24.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
|
||||
77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a
|
||||
@@ -89,8 +83,6 @@ flowchart TD
|
||||
|
||||
#### 常见的 “立即退出” 场景
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 场景 | 原因 | 解决方案 |
|
||||
|------|------|---------|
|
||||
| `docker run -d ubuntu` | 默认 bash 无输入立即退出 | 指定长期运行的命令 |
|
||||
@@ -99,12 +91,8 @@ flowchart TD
|
||||
|
||||
### 5.2.4 查看后台容器
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 查看运行中的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker container ls
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
@@ -113,8 +101,6 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS PO
|
||||
|
||||
#### 查看容器输出日志
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker container logs 77b2dc01fe0f
|
||||
hello world
|
||||
@@ -131,8 +117,6 @@ $ docker container logs -f 77b2dc01fe0f
|
||||
|
||||
#### 查看已停止的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker container ls -a
|
||||
```
|
||||
@@ -141,12 +125,8 @@ $ docker container ls -a
|
||||
|
||||
### 5.2.5 最佳实践
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1. 长期运行的服务使用 -d
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## Web 服务器
|
||||
|
||||
@@ -185,8 +165,6 @@ Hello, World!
|
||||
|
||||
#### 4. 配合日志查看
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 后台启动
|
||||
|
||||
@@ -207,8 +185,6 @@ $ docker logs -t myapp
|
||||
|
||||
### 5.2.6 常见问题排查
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Q:容器启动后立即退出
|
||||
|
||||
1. **查看退出状态码**:
|
||||
|
||||
@@ -16,20 +16,14 @@
|
||||
|
||||
### 5.3.2 docker stop (推荐)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### docker stop 基本用法
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker stop 容器名或ID
|
||||
```
|
||||
|
||||
#### 工作原理
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
cmd["docker stop mycontainer"] --> A["1. 发送 SIGTERM 信号给容器主进程 (PID 1)"]
|
||||
@@ -39,8 +33,6 @@ flowchart TD
|
||||
|
||||
#### 自定义超时时间
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 等待 30 秒后强制终止
|
||||
|
||||
@@ -53,8 +45,6 @@ $ docker stop -t 0 mycontainer
|
||||
|
||||
#### 停止多个容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 停止多个指定容器
|
||||
|
||||
@@ -69,20 +59,14 @@ $ docker stop $(docker ps -q)
|
||||
|
||||
### 5.3.3 docker kill
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 基本用法
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker kill 容器名或ID
|
||||
```
|
||||
|
||||
#### 与 stop 的区别
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 命令 | 信号 | 使用场景 |
|
||||
|------|------|---------|
|
||||
| `docker stop` | SIGTERM → SIGKILL | 正常停止,让应用优雅退出 |
|
||||
@@ -90,8 +74,6 @@ $ docker kill 容器名或ID
|
||||
|
||||
#### 发送自定义信号
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 发送 SIGHUP(让进程重新加载配置)
|
||||
|
||||
@@ -123,8 +105,6 @@ $ docker run ubuntu echo "Hello" # echo 执行完 → 容器停止
|
||||
|
||||
### 5.3.5 查看已停止的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker ps -a
|
||||
CONTAINER ID IMAGE COMMAND STATUS NAMES
|
||||
@@ -146,12 +126,8 @@ c5d3a5e8f7b2 nginx "nginx" Up 5 minutes mynginx
|
||||
|
||||
### 5.3.6 重新启动容器
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 启动已停止的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker start 容器名或ID
|
||||
|
||||
@@ -162,8 +138,6 @@ $ docker start -ai 容器名
|
||||
|
||||
#### 重启运行中的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 先停止再启动
|
||||
|
||||
@@ -178,8 +152,6 @@ $ docker restart -t 30 容器名
|
||||
|
||||
### 5.3.7 生命周期状态图
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```mermaid
|
||||
stateDiagram-v2
|
||||
direction TB
|
||||
@@ -200,28 +172,20 @@ stateDiagram-v2
|
||||
|
||||
### 5.3.8 批量操作
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 停止所有容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker stop $(docker ps -q)
|
||||
```
|
||||
|
||||
#### 删除所有已停止的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker container prune
|
||||
```
|
||||
|
||||
#### 停止并删除所有容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker stop $(docker ps -q) && docker container prune -f
|
||||
```
|
||||
@@ -230,8 +194,6 @@ $ docker stop $(docker ps -q) && docker container prune -f
|
||||
|
||||
### 5.3.9 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Q:容器停止很慢
|
||||
|
||||
原因:应用没有正确处理 SIGTERM 信号,需要等待超时后强制终止。
|
||||
@@ -258,8 +220,6 @@ CMD ["node", "server.js"]
|
||||
|
||||
#### Q:容器无法停止
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 强制终止
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
## 5.4 进入容器
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 5.4.1 为什么需要进入容器
|
||||
|
||||
使用 `-d` 参数启动容器后,容器在后台运行。以下场景需要进入容器内部操作:
|
||||
@@ -26,12 +24,8 @@ Docker 提供两种进入容器的命令:
|
||||
|
||||
### 5.4.3 docker exec (推荐)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### docker exec 基本用法
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 进入容器并启动交互式 shell
|
||||
|
||||
@@ -44,8 +38,6 @@ $ docker exec -it 容器名 /bin/sh
|
||||
|
||||
#### 参数说明
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 参数 | 作用 |
|
||||
|------|------|
|
||||
| `-i` | 保持标准输入打开 (interactive)|
|
||||
@@ -57,8 +49,6 @@ $ docker exec -it 容器名 /bin/sh
|
||||
|
||||
#### docker exec 示例
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 启动一个后台容器
|
||||
|
||||
@@ -99,8 +89,6 @@ $ docker exec -u root myubuntu apt update
|
||||
|
||||
#### 只用 -i 不用 -t 的区别
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 只用 -i:可以执行命令,但没有提示符
|
||||
|
||||
@@ -123,12 +111,8 @@ root@69d137adef7a:/# # 有提示符
|
||||
|
||||
### 5.4.4 docker attach (谨慎使用)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### docker attach 基本用法
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker attach 容器名
|
||||
```
|
||||
@@ -150,8 +134,6 @@ flowchart LR
|
||||
|
||||
#### docker attach 示例
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 启动容器
|
||||
|
||||
@@ -199,8 +181,6 @@ CONTAINER ID IMAGE STATUS NAMES
|
||||
|
||||
### 5.4.5 exec vs attach 对比
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 特性 | docker exec | docker attach |
|
||||
|------|-------------|---------------|
|
||||
| **工作方式** | 在容器内启动新进程 | 附加到主进程 |
|
||||
@@ -238,12 +218,8 @@ flowchart LR
|
||||
|
||||
### 5.4.6 最佳实践
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1. 首选 docker exec
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 进入容器调试
|
||||
|
||||
@@ -285,8 +261,6 @@ $ docker debug myapp
|
||||
|
||||
### 5.4.7 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Q:exec 进入后看不到其他终端的操作
|
||||
|
||||
这是正常的。exec 启动的是独立进程,多个 exec 会话互不影响。
|
||||
@@ -301,8 +275,6 @@ $ docker exec -it myapp /bin/sh
|
||||
|
||||
#### Q:需要 root 权限
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker exec -u root -it myapp bash
|
||||
```
|
||||
|
||||
@@ -16,8 +16,6 @@ $ docker rm 容器名或ID
|
||||
|
||||
### 5.6.2 删除选项
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 选项 | 说明 | 示例 |
|
||||
|------|------|------|
|
||||
| 无参数 | 删除已停止的容器 | `docker rm mycontainer` |
|
||||
@@ -26,8 +24,6 @@ $ docker rm 容器名或ID
|
||||
|
||||
#### 删除已停止的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker rm mycontainer
|
||||
mycontainer
|
||||
@@ -35,8 +31,6 @@ mycontainer
|
||||
|
||||
#### 强制删除运行中的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 不加 -f 会报错
|
||||
|
||||
@@ -53,8 +47,6 @@ running_container
|
||||
|
||||
#### 删除容器及其数据卷
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 删除容器时同时删除其匿名卷
|
||||
|
||||
@@ -67,12 +59,8 @@ $ docker rm -v mycontainer
|
||||
|
||||
### 5.6.3 批量删除
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 删除所有已停止的容器
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 方式一:使用 prune 命令(推荐)
|
||||
|
||||
@@ -92,8 +80,6 @@ $ docker container prune -f
|
||||
|
||||
#### 删除所有容器 (包括运行中的)
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 先停止所有容器,再删除
|
||||
|
||||
@@ -107,8 +93,6 @@ $ docker rm -f $(docker ps -aq)
|
||||
|
||||
#### 按条件删除
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 删除所有已退出的容器
|
||||
|
||||
@@ -138,14 +122,8 @@ $ docker container prune --filter "until=24h"
|
||||
| `before=xxx` | 在某容器之前创建 | `-f before=mycontainer` |
|
||||
| `since=xxx` | 在某容器之后创建 | `-f since=mycontainer` |
|
||||
|
||||
#### 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
#### 示例
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 删除所有基于 nginx 镜像的容器
|
||||
|
||||
@@ -178,12 +156,8 @@ $ docker image rm nginx
|
||||
|
||||
### 5.6.6 清理策略建议
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 开发环境
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 定期清理已停止的容器
|
||||
|
||||
@@ -196,8 +170,6 @@ $ docker system prune -f
|
||||
|
||||
#### 生产环境
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 使用 --rm 参数运行临时容器
|
||||
|
||||
@@ -211,8 +183,6 @@ $ docker container prune --filter "until=168h" # 保留 7 天内的
|
||||
|
||||
#### 完整清理脚本
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
## cleanup.sh - Docker 资源清理脚本
|
||||
@@ -237,12 +207,8 @@ docker system df
|
||||
|
||||
### 5.6.7 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Q:容器无法删除
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
Error: container is running
|
||||
```
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 第五章操作容器
|
||||
# 第五章 操作容器
|
||||
|
||||
容器是 Docker 又一核心概念。
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
本章将具体介绍如何来管理一个容器,包括创建、启动和停止等。
|
||||
|
||||
* [启动容器](../05_container/5.1_run.md)
|
||||
* [启动容器](5.1_run.md)
|
||||
* [守护态运行](5.2_daemon.md)
|
||||
* [终止容器](5.3_stop.md)
|
||||
* [进入容器](5.4_attach_exec.md)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
## 5.7 本章小结
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
| 操作 | 命令 | 说明 |
|
||||
|------|------|------|
|
||||
| 新建并运行 | `docker run` | 最常用的启动方式 |
|
||||
|
||||
Reference in New Issue
Block a user