You need to enable JavaScript to run this app. 使用docker-py 5.0.0获取容器列表触发TypeError错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

使用docker-py 5.0.0获取容器列表触发TypeError错误如何解决

问题原因

你遇到的报错和Docker引擎API版本无关,是调用方式使用了docker-py 1.x版本的旧语法:docker-py 2.0及后续版本重构了上层SDK接口,docker_client.containers现在是容器集合对象,并非可调用方法,加括号执行自然会触发类型错误。

解决方案

方案1:使用新版SDK推荐写法(优先推荐)

直接调用容器集合的list()方法即可获取容器列表:

  • 默认仅返回运行中的容器:
docker_containers = docker_client.containers.list()
  • 如需返回所有状态(包括已停止)的容器,添加all=True参数:
docker_containers = docker_client.containers.list(all=True)

方案2:兼容旧版API写法

如果需要兼容1.x版本的调用逻辑,可以按照报错提示改用低级接口APIClient,示例如下:

docker_client = docker.APIClient(base_url='unix://var/run/docker.sock', version="1.41")
docker_containers = docker_client.containers()

注意该方案使用的是低级API,返回结果为原生字典格式,没有新版SDK的对象封装能力,非必要不建议使用。

内容的提问来源于stack exchange,提问作者Bruc3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 06:45:04