Fix and update

This commit is contained in:
baohua
2026-02-09 11:34:35 -08:00
parent 784c989789
commit bb94a9f617
136 changed files with 2146 additions and 262 deletions

View File

@@ -26,11 +26,15 @@ Docker 提供两种进入容器的命令:
#### 基本用法
运行以下命令
```bash
## 进入容器并启动交互式 shell
$ docker exec -it 容器名 /bin/bash
## 或使用 sh适用于 Alpine 等精简镜像)
$ docker exec -it 容器名 /bin/sh
```
@@ -47,18 +51,23 @@ $ docker exec -it 容器名 /bin/sh
#### 示例
运行以下命令
```bash
## 启动一个后台容器
$ docker run -dit --name myubuntu ubuntu
69d137adef7a...
## 进入容器(交互式 shell
$ docker exec -it myubuntu bash
root@69d137adef7a:/# ls
bin boot dev etc home lib ...
root@69d137adef7a:/# exit
## 容器仍在运行!
$ docker ps
CONTAINER ID IMAGE STATUS NAMES
69d137adef7a ubuntu Up 2 minutes myubuntu
@@ -70,19 +79,25 @@ CONTAINER ID IMAGE STATUS NAMES
```bash
## 查看容器内进程
$ docker exec myubuntu ps aux
## 查看配置文件
$ docker exec myubuntu cat /etc/nginx/nginx.conf
## 以 root 用户执行
$ docker exec -u root myubuntu apt update
```
#### 只用 -i 不用 -t 的区别
运行以下命令
```bash
## 只用 -i可以执行命令但没有提示符
$ docker exec -i myubuntu bash
ls # 输入命令
bin # 输出结果
@@ -91,6 +106,7 @@ dev
...
## 用 -it有完整的终端体验
$ docker exec -it myubuntu bash
root@69d137adef7a:/# # 有提示符
```
@@ -103,6 +119,8 @@ root@69d137adef7a:/# # 有提示符
#### 基本用法
运行以下命令
```bash
$ docker attach 容器名
```
@@ -123,12 +141,16 @@ $ docker attach 容器名
#### 示例
运行以下命令
```bash
## 启动容器
$ docker run -dit --name myubuntu ubuntu
243c32535da7...
## 附加到容器
$ docker attach myubuntu
root@243c32535da7:/#
```
@@ -156,6 +178,7 @@ CONTAINER ID IMAGE STATUS NAMES
$ docker attach myubuntu
root@243c32535da7:/#
## 按 Ctrl+P 然后 Ctrl+Q
read escape sequence
$ docker ps # 容器仍在运行
@@ -194,14 +217,19 @@ docker exec docker attach
#### 1. 首选 docker exec
运行以下命令
```bash
## 进入容器调试
$ docker exec -it myapp bash
## 查看日志
$ docker exec myapp tail -f /var/log/app.log
## 执行数据库迁移
$ docker exec myapp python manage.py migrate
```
@@ -218,10 +246,12 @@ $ docker exec myapp python manage.py migrate
```bash
## 这会失败
$ docker exec -it myapp bash
OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found
## 解决方案使用调试容器Docker Desktop 或 Kubernetes debug
$ docker debug myapp
```
@@ -243,6 +273,8 @@ $ docker exec -it myapp /bin/sh
#### Q: 需要 root 权限
运行以下命令
```bash
$ docker exec -u root -it myapp bash
```