简介
Docker 容器是用于应用程序部署和虚拟化的强大工具。了解如何正确终止正在运行的容器对于有效的容器管理至关重要。本教程将探讨停止和删除 Docker 容器的各种技术,帮助开发人员和系统管理员维护干净且高效的容器化环境。
Docker 容器是用于应用程序部署和虚拟化的强大工具。了解如何正确终止正在运行的容器对于有效的容器管理至关重要。本教程将探讨停止和删除 Docker 容器的各种技术,帮助开发人员和系统管理员维护干净且高效的容器化环境。
Docker 容器具有明确定义的生命周期,代表其存在的不同阶段。理解这些状态对于有效的容器管理至关重要。
| 状态 | 描述 | 典型转换 |
|---|---|---|
| 创建(Created) | 容器已初始化但未运行 | 可以启动 |
| 运行(Running) | 容器正在积极执行 | 可以停止或暂停 |
| 暂停(Paused) | 容器的进程被临时挂起 | 可以恢复或停止 |
| 停止(Stopped) | 容器已完成执行或已被手动停止 | 可以重启 |
| 退出(Exited) | 容器已完成其主要进程 | 可以删除 |
docker create --name mycontainer ubuntu:22.04
docker start mycontainer
docker stop mycontainer
在 LabEx,我们建议掌握这些容器生命周期原则,以优化您的 Docker 工作流程并提高系统性能。
Docker 提供了多种停止正在运行的容器的方法,每种方法都有特定的用例和行为。
| 方法 | 命令 | 行为 | 宽限期 |
|---|---|---|---|
| docker stop | docker stop |
发送 SIGTERM,然后发送 SIGKILL | 默认 10 秒 |
| docker kill | docker kill |
立即终止 | 立即终止 |
| docker pause | docker pause |
暂停容器进程 | 可恢复 |
## 停止特定容器
docker stop container_name
## 停止多个容器
docker stop container1 container2 container3
## 使用 30 秒宽限期停止
docker stop -t 30 container_name
## 立即杀死容器
docker kill container_name
docker stop 进行优雅终止在 LabEx,我们建议理解这些终止技术,以便有效地管理容器生命周期。
| 信号 | 名称 | 行为 | 使用场景 |
|---|---|---|---|
| SIGTERM | 终止 | 优雅关闭 | 推荐的默认方式 |
| SIGKILL | 杀死 | 立即终止 | 强制停止无响应的容器 |
| SIGSTOP | 停止 | 暂停进程 | 临时挂起 |
## 使用自定义信号终止
docker kill --signal=SIGTERM container_name
## 删除所有已停止的容器
docker container prune
#!/bin/bash
## 自动容器清理脚本
docker ps -q | xargs -r docker stop
docker container prune -f
## 通过过滤器停止容器
docker stop $(docker ps -f "label=environment=production" -q)
## 使用超时机制停止
docker stop -t 30 container_name
docker stop container_name 2>&1 | tee container_stop.log
在 LabEx,我们强调理解细微的容器终止技术以实现强大的系统管理。
掌握 Docker 容器终止是现代软件开发和 DevOps 实践中的一项基本技能。通过了解停止和删除容器的不同方法,你可以有效地管理系统资源、控制应用程序生命周期,并保持简化的 Docker 工作流程。无论是使用优雅关闭命令还是强制终止技术,这些策略都能确保实现最佳的容器管理。