docker stop命令用于安全停止运行中的容器,先发SIGTERM信号允许优雅退出,超时(默认10秒)后发SIGKILL强制终止;支持单个或多个容器、自定义等待时间及批量操作,并可通过docker ps -a验证退出状态。
docker stop 命令用于安全地停止一个或多个正在运行的容器。它会先向容器内主进程(pid 1)发送 sigterm 信号,等待容器自行优雅关闭;若超时未退出,则自动发送 sigkill 强制终止。
基本用法:停止单个容器
只需提供容器的名称或 ID(支持简写,只要唯一即可):
-
docker stop my-nginx—— 使用容器名 -
docker stop a1b2c3d4—— 使用前几位容器 ID
指定等待时间(避免强制杀进程)
默认等待 10 秒才执行 SIGKILL。如需调整,用 -t 或 --time 参数:
-
docker stop -t 5 my-app—— 最多等 5 秒 -
docker stop --time=30 db-container—— 等 30 秒再强制停
注意:时间过短可能导致程序来不及保存状态或释放资源;过长则影响操作效率。
批量停止多个容器
在同一命令中列出多个容器名或 ID,空格分隔:
docker stop web-server db redis-cachedocker stop a1b2 c3d4 e5f6
也可结合 docker ps -q 停止所有运行中的容器:
docker stop $(docker ps -q)
确认是否已停止
执行后不会直接输出结果,建议用以下命令验证:
-
docker ps—— 查看仍在运行的容器(已停止的不会显示) -
docker ps -a—— 查看所有容器,状态列显示Exited (0) X minutes ago表示已正常停止
如果看到状态是 Up,说明停止失败,可能因容器进程忽略 SIGTERM 或卡死,此时可尝试 docker kill 强制终止。


















