python-3.x - 如何从 docker-py 获取容器 ID
问题描述
我正在尝试使用 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'] ,但没有成功。我可以知道得到我要求的结果吗
解决方案
很多 id 在 docker 中令人困惑。
您可以在此处阅读有关 id 类型的信息。
当您了解什么是容器 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上正常运行。
推荐阅读
- javascript - 无法从 Azure 触发函数更新 cosmosDB 集合
- javascript - 如何使用 JavaScript 获取小数点后 2 位的 ceil 值
- sql-server - 查询 SQL Server 表中的 XML 字段
- android - 为什么 EditText 会显示用户输入但不保留该用户输入?
- html - 我想尝试做4条彼此相对的线,但是长度似乎不一样,倾斜角度也一样
- vba - 组合框查询以显示所有记录
- javascript - 如何在 reactjs 中使用 bulma carousel?
- unit-testing - 如何在我的 go 测试中实施伪造者?
- linux - env 输出中缺少 HOSTNAME
- python - 特征选择或特征工程:问题