python-3.x - 如何从docker-py获取容器ID

标签 python-3.x docker dockerpy

我正在尝试使用 docker-py 模块的过滤器检查 docker 容器是否已启动。但是可以检查它是向上还是向下。 供引用:

def checkDockerContainerStatus( container):
    client = docker.from_env()
    cli = docker.APIClient()
    if client.containers.list(filters={'name': container}):
        response = client.containers.list(filters={'name': container})
        return 'Up'
    else:
        return 'Down'

checkDockerContainerStatus('app-container')

我得到的回复是 [<Container: eb42d23b6f>] 如何从此响应中检索容器 ID 以检查其是否为 log 。

我尝试了response['container'],但没有成功。我可以知道得到我要求的结果

最佳答案

docker 中的大量 id 令人困惑。

您可以阅读有关 id 类型的信息 here .

当您了解什么是容器 ID 的短格式和长格式时,您的代码可能类似于:

import docker

def checkDockerContainerStatus( container):
    client = docker.from_env()
    #cli = docker.APIClient()
    if client.containers.list(filters={'name': container}):
        response = client.containers.list(filters={'name': container})
        return str(response[0].id)[:12]
    else:
        return None

running_id = checkDockerContainerStatus('app-container')

if running_id is not None:
    print(f"Found! {running_id}")
else:
    print("Container app-container is not found")

我还建议使用docker SDK而不是 docker-py。

您的代码无法在 docker-py 上运行,也无法在 docker SDK 上正常运行。 .

关于python-3.x - 如何从docker-py获取容器ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63534480/

相关文章:

python - "python setup.py install"在 Dockerfile 中不起作用,但我可以进入容器并做同样的事情......任何指针?

python - docker-py client.images.list() 始终显示所有图像

Python 字典 : why and when I have to use sometimes ":" and sometimes "=" between the key and the value?

python-3.x - python 3 |线程工作奇怪

php - 如何将Docker PHP容器连接到MySql容器?

python - cassandra 和 docker-py 出现连接拒绝错误

docker - 如何使用docker_host_info过滤处于退出状态的docker容器?

python-3.x - mac 上的 Pycharm - 在 pycharm 的 ''(引号)之前禁用方形符号

python - 将递归函数变成迭代函数

azure - 使用 azure 构建管道、自托管代理和 docker-desktop 创建 docker 镜像