mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-24 02:35:27 +00:00
Fix and update
This commit is contained in:
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user