# 常见问题与解决方案

URL: https://caijiao.org/docker/troubleshooting/common-issues
Source: docs/docker/troubleshooting/common-issues.md
Description: 本章节整理 Docker 使用过程中常见问题及解决方案，包括容器启动失败、网络配置异常、镜像拉取失败、权限问题等，帮助开发者快速排查和修复问题，保障容器运行稳定。

在 Docker 使用过程中，可能会遇到各种问题。本节总结一些常见问题及对应解决方法，帮助快速排查和解决。

## 1. 容器无法启动

- **原因**：
  - 镜像不存在或拉取失败
  - 配置错误（端口占用、环境变量缺失）
  - 依赖服务未就绪

- **解决方案**：

```bash
docker logs <container_id>
docker inspect <container_id>
docker pull <image_name>
````

- 检查 Compose 配置，确保依赖服务正确配置 `depends_on`

## 2. 镜像拉取慢或失败

- **原因**：

  - 网络问题
  - 镜像仓库访问受限

- **解决方案**：

  - 使用国内镜像加速器

```bash
docker pull registry.docker-cn.com/library/nginx:latest
```

- 登录私有仓库

```bash
docker login myregistry.com
```

## 3. 网络配置问题

- **常见问题**：

  - 容器无法访问外部网络
  - 容器间通信失败

- **解决方案**：

  - 检查 Docker 网络模式：

```bash
docker network ls
docker network inspect <network_name>
```

- 使用自定义桥接网络：

```bash
docker network create my_bridge
docker run --network my_bridge ...
```

## 4. 权限与文件挂载问题

- **问题**：容器访问宿主机挂载目录失败
- **解决方案**：

  - 确认挂载目录权限：

```bash
chown -R $(id -u):$(id -g) ./data
```

- 避免容器以 root 运行访问非 root 用户文件

## 5. 容器性能问题

- **常见症状**：

  - CPU 或内存占用高
  - 容器响应慢

- **解决方案**：

  - 限制资源使用：

```bash
docker run --cpus="1" --memory="512m" myapp
```

- 优化镜像体积和依赖
- 监控日志与性能指标

## 6. 容器日志问题

- **问题**：日志文件过大或无法访问
- **解决方案**：

  - 配置日志轮转：

```yaml
logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"
```

- 使用集中日志管理（ELK / Fluentd）

## 7. 总结

- 通过查看日志、Inspect、监控指标等方法快速定位问题
- 合理配置网络、权限和资源限制
- 定期更新镜像和依赖，保持容器环境安全
- 使用 CI/CD 流程减少人为配置错误

---

掌握这些常见问题及解决方案，可以提高 Docker 容器应用的稳定性和可靠性，减少运维成本。
