mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
style: apply global formatting fixes (struct, spacing, zhlint)
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
## 5.4 进入容器
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 为什么需要进入容器
|
||||
|
||||
使用 `-d` 参数启动容器后,容器在后台运行。以下场景需要进入容器内部操作:
|
||||
@@ -22,7 +24,9 @@ Docker 提供两种进入容器的命令:
|
||||
|
||||
---
|
||||
|
||||
### docker exec(推荐)
|
||||
### docker exec (推荐)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### docker exec 基本用法
|
||||
|
||||
@@ -115,7 +119,9 @@ root@69d137adef7a:/# # 有提示符
|
||||
|
||||
---
|
||||
|
||||
### docker attach(谨慎使用)
|
||||
### docker attach (谨慎使用)
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### docker attach 基本用法
|
||||
|
||||
@@ -127,7 +133,7 @@ $ docker attach 容器名
|
||||
|
||||
#### 工作原理
|
||||
|
||||
`attach` 会附加到容器的**主进程**(PID 1)的标准输入输出:
|
||||
`attach` 会附加到容器的**主进程** (PID 1) 的标准输入输出:
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@@ -228,7 +234,9 @@ flowchart LR
|
||||
|
||||
### 最佳实践
|
||||
|
||||
#### 1. 首选 docker exec
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 1。首选 docker exec
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -246,16 +254,16 @@ $ docker exec myapp tail -f /var/log/app.log
|
||||
$ docker exec myapp python manage.py migrate
|
||||
```
|
||||
|
||||
#### 2. 生产环境避免进入容器
|
||||
#### 2。生产环境避免进入容器
|
||||
|
||||
笔者建议:生产环境应尽量避免进入容器直接操作,而是通过:
|
||||
- 日志系统查看日志(如 `docker logs` 或集中式日志)
|
||||
- 日志系统查看日志 (如 `docker logs` 或集中式日志)
|
||||
- 监控系统查看状态
|
||||
- 重新部署而非手动修改
|
||||
|
||||
#### 3. 无 shell 镜像的处理
|
||||
#### 3。无 shell 镜像的处理
|
||||
|
||||
某些精简镜像(如基于 `scratch` 或 `distroless`)没有 shell:
|
||||
某些精简镜像 (如基于 `scratch` 或 `distroless`) 没有 shell:
|
||||
|
||||
```bash
|
||||
## 这会失败
|
||||
@@ -272,11 +280,13 @@ $ docker debug myapp
|
||||
|
||||
### 常见问题
|
||||
|
||||
#### Q: exec 进入后看不到其他终端的操作
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Q:exec 进入后看不到其他终端的操作
|
||||
|
||||
这是正常的。exec 启动的是独立进程,多个 exec 会话互不影响。
|
||||
|
||||
#### Q: 容器没有 bash
|
||||
#### Q:容器没有 bash
|
||||
|
||||
尝试使用 sh:
|
||||
|
||||
@@ -284,7 +294,7 @@ $ docker debug myapp
|
||||
$ docker exec -it myapp /bin/sh
|
||||
```
|
||||
|
||||
#### Q: 需要 root 权限
|
||||
#### Q:需要 root 权限
|
||||
|
||||
运行以下命令:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user