# 容器的生命周期（start/stop/restart）

URL: https://caijiao.org/docker/containers/lifecycle
Source: docs/docker/containers/lifecycle.md
Description: 本章节介绍 Docker 容器的生命周期管理，包括启动、停止、重启容器的方法及注意事项，并讲解自动重启策略和容器状态监控，帮助开发者高效管理容器运行。

Docker 容器的生命周期管理是日常运维和开发的重要环节。掌握生命周期命令，可以灵活控制容器的启动、停止和重启。

## 1. 启动容器（docker start）

启动已停止的容器：

```bash
docker start mycontainer
````

* 可加 `-a` 参数附加终端：

```bash
docker start -a mycontainer
```

* 可加 `-i` 进入交互模式：

```bash
docker start -ai mycontainer
```

## 2. 停止容器（docker stop）

优雅停止运行中的容器：

```bash
docker stop mycontainer
```

* 默认等待 10 秒让容器进程结束，可自定义等待时间：

```bash
docker stop -t 20 mycontainer
```

* 发送 SIGTERM 信号，超时后发送 SIGKILL 强制停止

## 3. 重启容器（docker restart）

快速停止并启动容器：

```bash
docker restart mycontainer
```

* 可指定超时：

```bash
docker restart -t 15 mycontainer
```

* 相当于执行 `stop` 然后 `start`

## 4. 生命周期状态查看

* 查看容器状态：

```bash
docker ps -a
```

* 状态字段示例：

  * `Up X minutes`：运行中
  * `Exited (0) Y minutes ago`：已停止

## 5. 自动重启策略

* 通过 `--restart` 参数设置自动重启：

```bash
docker run -d --restart unless-stopped myapp:1.0
```

* 可选策略：

  * `no`：不自动重启（默认）
  * `always`：无论退出状态如何都重启
  * `unless-stopped`：除非手动停止，否则自动重启
  * `on-failure[:max-retries]`：失败时重启，最多重试次数可选

---

通过掌握容器生命周期命令与自动重启策略，可以更灵活、安全地管理容器运行状态，提高生产环境的稳定性和可维护性。
