# 容器（Containers）

URL: https://caijiao.org/docker/core/containers
Source: docs/docker/core/containers.md
Description: 本章节介绍 Docker 容器的核心概念、创建方式、运行管理以及生命周期操作，帮助开发者理解容器与镜像的关系，并高效使用容器进行应用部署与调试。

Docker 容器是镜像的可运行实例，是一个轻量、可移植且隔离的运行环境。容器在共享宿主机操作系统内核的同时，保证了应用与其依赖环境的独立性和一致性。

## 1. 容器的特点

- **轻量**：相比虚拟机，启动快、占用少
- **隔离**：独立文件系统、网络和进程空间
- **可移植**：同一镜像在不同环境下运行结果一致
- **短生命周期**：容器可快速创建、销毁和迁移

## 2. 创建与运行容器

使用 `docker run` 创建并启动容器：

```bash
# 运行 Ubuntu 容器
docker run -it ubuntu:20.04 /bin/bash

# 运行 Nginx 并映射端口
docker run -d -p 8080:80 nginx:latest
````

常用参数说明：

- `-it`：交互式终端
- `-d`：后台运行
- `-p host:container`：端口映射
- `--name`：指定容器名称
- `-v host:container`：挂载卷

## 3. 查看与管理容器

```bash
docker ps             # 查看运行中容器
docker ps -a          # 查看所有容器
docker stop <id>      # 停止容器
docker start <id>     # 启动已停止容器
docker restart <id>   # 重启容器
docker rm <id>        # 删除容器
```

## 4. 容器文件系统与数据持久化

- 容器文件系统为只读镜像层 + 可写层
- 使用 Volume 或 Bind Mount 保存数据，避免容器删除导致数据丢失

## 5. 容器调试与进入

```bash
docker exec -it <container_name> /bin/bash
docker logs <container_name>
docker top <container_name>
```

---

通过掌握容器的创建、管理和调试方法，你可以在实际项目中灵活部署、维护和调优应用服务。
