📜  如何在 docker 中停止容器 - Python (1)

📅  最后修改于: 2023-12-03 15:24:09.800000             🧑  作者: Mango

如何在 Docker 中停止容器 - Python

在 Docker 中停止容器是一个非常基本和重要的操作。Python 在 Docker 操作中也扮演着重要的角色。本文将向你介绍如何使用 Python 在 Docker 中停止容器。

在 Python 中使用 Docker SDK

Docker SDK 是 Docker 的官方 Python SDK。它支持所有的 Docker API 操作,包括容器管理。因此,如果你想在 Python 中停止一个 Docker 容器,可以使用 Docker SDK。

安装 Docker SDK

首先,你需要安装 Docker SDK。你可以使用 pip 包管理器安装它:

pip install docker
使用 Docker SDK 停止容器

要停止一个 Docker 容器,你需要首先创建一个 Docker 客户端:

import docker

client = docker.from_env()

接下来,你可以使用该客户端的 containers.get 方法获取要停止的容器对象:

container = client.containers.get('container_id_or_name')

最后,你可以使用容器对象的 stop 方法停止容器:

container.stop()

如果你需要传递停止容器的超时时间,可以在 stop 方法中传递 timeout 参数:

container.stop(timeout=10)
使用 Docker Compose 停止容器

如果你使用 Docker Compose 管理容器,你可以使用以下命令停止所有容器:

docker-compose down

如果你只想停止特定服务的容器,可以使用以下命令:

docker-compose stop <service_name>

如果你想在 Python 代码中执行这些命令,可以使用 os 模块来调用命令:

import os

os.system('docker-compose down')

或者使用 subprocess 模块来以编程方式运行命令:

import subprocess

subprocess.run(['docker-compose', 'down'])

下面是一个 Python 脚本示例,可以使用 Docker SDK 停止指定 ID 或名称的容器:

import docker

client = docker.from_env()

def stop_container(container_id_or_name):
    container = client.containers.get(container_id_or_name)
    container.stop()
    print(f'Stopped container: {container_id_or_name}')

if __name__ == '__main__':
    container_id_or_name = input('Enter container ID or name: ')
    stop_container(container_id_or_name)
结论

停止 Docker 容器是 Docker 中最基本的操作之一。Python 能够以多种方式与 Docker 交互,包括使用 Docker SDK 和 Docker Compose。本文向你介绍了如何使用 Python 停止 Docker 容器。