Add blank lines around headers

This commit is contained in:
yeasy
2026-03-24 09:27:04 -07:00
parent 857e3b73f6
commit ae8636e96f
112 changed files with 468 additions and 0 deletions

View File

@@ -18,6 +18,7 @@
```bash
docker run [选项] 镜像 [命令] [参数...]
```
#### 最简单的例子
输出 Hello World 后容器自动终止
@@ -53,6 +54,7 @@ root@af8bae53bdd3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@af8bae53bdd3:/# exit # 退出容器
```
### 5.1.3 docker run 的完整流程
执行 `docker run` Docker 在后台完成以下操作
@@ -73,6 +75,7 @@ flowchart TD
Step4["4. 启动容器,执行指定命令"] --> Step5
Step5["5. 命令执行完毕,容器停止"]
```
### 5.1.4 常用启动选项
#### 基础选项
@@ -99,6 +102,7 @@ $ docker run -d -P nginx
$ docker run -d -p 127.0.0.1:8080:80 nginx
```
#### 数据卷挂载
```bash
@@ -114,6 +118,7 @@ $ docker run -v /host/path:/container/path nginx
$ docker run -v /host/path:/container/path:ro nginx
```
#### 环境变量
```bash
@@ -125,6 +130,7 @@ $ docker run -e MYSQL_ROOT_PASSWORD=secret mysql
$ docker run --env-file .env myapp
```
#### 资源限制
```bash
@@ -136,6 +142,7 @@ $ docker run -m 512m nginx
$ docker run --cpus=1.5 nginx
```
### 5.1.5 启动已终止容器
使用 `docker start` 重新启动已停止的容器
@@ -155,6 +162,7 @@ $ docker start myubuntu
$ docker start -ai myubuntu
```
### 5.1.6 容器内进程的特点
容器内只运行指定的应用程序及其必需资源
@@ -199,6 +207,7 @@ $ docker run -d nginx
$ docker run -d -p 80:80 nginx
```
#### Q容器内修改的文件丢失
**原因**未使用数据卷数据保存在容器存储层

View File

@@ -92,6 +92,7 @@ $ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77b2dc01fe0f ubuntu:24.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright
```
#### 查看容器输出日志
```bash
@@ -106,6 +107,7 @@ hello world
```bash
$ docker container logs -f 77b2dc01fe0f
```
#### 查看已停止的容器
```bash
@@ -130,6 +132,7 @@ $ docker run -d -p 3306:3306 mysql:8
$ docker run -d -p 6379:6379 redis
```
#### 2. 调试时先用前台模式
当容器启动有问题时**去掉 `-d` 参数** 可以直接看到输出和错误
@@ -139,6 +142,7 @@ $ docker run -d -p 6379:6379 redis
$ docker run myimage:latest
```
#### 3. 使用 --rm 自动清理
对于一次性任务使用 `--rm` 参数让容器退出后自动删除
@@ -151,6 +155,7 @@ Hello, World!
...
```
#### 4. 配合日志查看
```bash
@@ -170,6 +175,7 @@ $ docker logs -f myapp
$ docker logs -t myapp
```
### 5.2.6 常见问题排查
#### Q容器启动后立即退出

View File

@@ -21,6 +21,7 @@
```bash
$ docker stop 容器名或ID
```
#### 工作原理
```mermaid
@@ -29,6 +30,7 @@ flowchart TD
A --> B["2. 等待容器优雅退出 (默认 10 秒)"]
B --> C["3. 如果超时仍未退出,发送 SIGKILL 强制终止"]
```
#### 自定义超时时间
```bash
@@ -40,6 +42,7 @@ $ docker stop -t 30 mycontainer
$ docker stop -t 0 mycontainer
```
#### 停止多个容器
```bash
@@ -60,6 +63,7 @@ $ docker stop $(docker ps -q)
```bash
$ docker kill 容器名或ID
```
#### stop 的区别
| 命令 | 信号 | 使用场景 |
@@ -127,6 +131,7 @@ $ docker start 容器名或ID
$ docker start -ai 容器名
```
#### 重启运行中的容器
```bash
@@ -166,11 +171,13 @@ stateDiagram-v2
```bash
$ docker stop $(docker ps -q)
```
#### 删除所有已停止的容器
```bash
$ docker container prune
```
#### 停止并删除所有容器
```bash
@@ -204,6 +211,7 @@ FROM node:22
CMD ["node", "server.js"]
```
#### Q容器无法停止
```bash

View File

@@ -35,6 +35,7 @@ $ docker exec -it 容器名 /bin/bash
$ docker exec -it 容器名 /bin/sh
```
#### 参数说明
| 参数 | 作用 |
@@ -67,6 +68,7 @@ $ docker ps
CONTAINER ID IMAGE STATUS NAMES
69d137adef7a ubuntu Up 2 minutes myubuntu
```
#### 执行单条命令
不进入交互模式直接执行命令
@@ -84,6 +86,7 @@ $ docker exec myubuntu cat /etc/nginx/nginx.conf
$ docker exec -u root myubuntu apt update
```
#### 只用 -i 不用 -t 的区别
```bash
@@ -112,6 +115,7 @@ root@69d137adef7a:/# # 有提示符
```bash
$ docker attach 容器名
```
#### 工作原理
`attach` 会附加到容器的 **主进程** (PID 1) 的标准输入输出
@@ -126,6 +130,7 @@ flowchart LR
end
Attach["docker attach"] -->|"附加到这里"| P1
```
#### docker attach 示例
```bash
@@ -139,6 +144,7 @@ $ docker run -dit --name myubuntu ubuntu
$ docker attach myubuntu
root@243c32535da7:/#
```
#### 重要警告
** attach 会话中输入 `exit` 或按 `Ctrl+D` 会导致容器停止**
@@ -224,6 +230,7 @@ $ docker exec myapp tail -f /var/log/app.log
$ docker exec myapp python manage.py migrate
```
#### 2. 生产环境避免进入容器
笔者建议生产环境应尽量避免进入容器直接操作而是通过
@@ -261,6 +268,7 @@ $ docker debug myapp
```bash
$ docker exec -it myapp /bin/sh
```
#### Q需要 root 权限
```bash

View File

@@ -27,6 +27,7 @@ $ docker rm 容器名或ID
$ docker rm mycontainer
mycontainer
```
#### 强制删除运行中的容器
```bash
@@ -73,6 +74,7 @@ Total reclaimed space: 150MB
$ docker container prune -f
```
#### 删除所有容器包括运行中的
```bash
@@ -85,6 +87,7 @@ $ docker rm $(docker ps -aq)
$ docker rm -f $(docker ps -aq)
```
#### 按条件删除
```bash
@@ -158,6 +161,7 @@ $ docker container prune -f
$ docker system prune -f
```
#### 生产环境
```bash
@@ -171,6 +175,7 @@ $ docker run --rm ubuntu echo "Hello"
$ docker container prune --filter "until=168h" # 保留 7 天内的
```
#### 完整清理脚本
```bash
@@ -212,6 +217,7 @@ $ docker rm mycontainer
$ docker rm -f mycontainer
```
#### Q删除后磁盘空间没释放
可能原因