运维

运维

Products

当前位置:首页 > 运维 >

如何一键停止所有Docker容器?

96SEO 2025-08-17 15:26 5


Docker作为容器化技术, 在开发、测试和生产环境中都得到了广泛应用。有时我们需要一次性停止所有Docker容器,可能是为了进行系统维护、升级或者测试。本文将介绍如何使用命令行工具、脚本和编程语言API来一键停止所有Docker容器。

docker 停止所有容器

命令行工具

1. 使用docker stop命令

使用docker stop命令可以停止一个或多个容器。要停止所有容器, 可以使用以下命令:

docker stop $

这里docker ps -aq命令会列出所有容器的ID,而$是一个命令替换,它将docker ps -aq的输出作为参数传递给docker stop命令。

2. 使用docker-compose

如果你使用docker-compose管理容器, 可以使用以下命令停止所有服务:

docker-compose down

这个命令会停止所有由docker-compose管理的服务,并删除容器、网络和数据卷。

脚本方法

1. Shell脚本

你可以编写一个Shell脚本来实现一键停止所有容器的功能。

#!/bin/bash
docker stop $
echo "所有Docker容器已停止。"

保存这个脚本为stop-all-containers.sh, 并赋予施行权限:

chmod +x stop-all-containers.sh
./stop-all-containers.sh

2. Python脚本

如果你更喜欢使用Python,可以使用以下脚本实现相同的功能:

import subprocess
def stop_all_containers:
    subprocess.run"])
stop_all_containers
print

保存这个脚本为stop_all_containers.py,并在Python环境中运行它。

编程语言API

1. Docker SDK for Python

Docker SDK for Python提供了一个Pythonic的方式与Docker引擎交互。

from docker import APIClient
client = APIClient
containers = client.containers.list
for container in containers:
    container.stop
print

如果你使用Go语言,可以使用Docker SDK for Go停止所有容器。

package main
import (
    "context"
    "log"
    "github.com/docker/docker/api/types"
    "github.com/docker/docker/client"
)
func main {
    ctx := context.Background
    cli, err := client.NewClientWithOpts
    if err != nil {
        log.Fatal
    }
    containers, err := cli.ContainerList
    if err != nil {
        log.Fatal
    }
    for _, container := range containers {
        if err := cli.ContainerStop; err != nil {
            log.Fatal
        }
    }
    log.Println
}

停止所有Docker容器有多种方法, 包括使用命令行工具、脚本和编程语言API。根据你的需求和环境选择合适的方法,可以让你更高效地管理Docker容器。



提交需求或反馈

Demand feedback