使用inspect_container检查python上停止的docker容器

我正在用Python编码testing。 我想做一个方法,输出一个容器的状态(运行/退出)。

import docker class Container: def __init__(self, name, image, *, command=[], links={}): self._docker = docker.DockerClient(base_url='unix://var/run/docker.sock') def get_status(self): inspection = self._docker.api.inspect_container(self.id) return inspection['State']['Status'] 

此方法(get_status)在容器运行时工作,但在容器停止时失败,并显示以下错误消息:

 E docker.errors.NotFound: 404 Client Error: Not Found ("No such container: 2457e5a283e5cb4add4fdb36pb465437b21bb21f768be405fe40615e25442d6e 

“docker inspect”cli命令在实例停止时工作,但是我需要通过python来完成

有任何想法吗?

您正在使用较旧版本的docker-py 。 下面做

 pip uninstall docker-py pip install docker 

然后运行代码

 import docker client = docker.client.DockerClient() container = client.containers.get("2457e5a283e5cb4add4fdb36pb465437b21bb21f768be405fe40615e25442d6e") 

现在它应该工作