docker-py 尝试获取容器列表时出错

docker-py error when attempting to get a list of containers

如果我遗漏了一些明显的东西,我深表歉意。我正在尝试使用 docker-py 版本 5.0.0 和 python 3.6 连接到我的本地 docker 引擎和 运行 命令,但是当我尝试时收到错误访问 运行ning 容器列表。我在 docker:stable 容器和服务器 运行ning Ubuntu 18.04.

上收到了同样的错误

这是我如何得到错误的示例:

$ python3
>>> import docker
>>> print(docker.__version__)
5.0.0
>>> docker_client = docker.DockerClient(base_url='unix://var/run/docker.sock', version="1.41")
>>> docker_containers = docker_client.containers()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.6/site-packages/docker/models/resource.py", line 67, in __call__
    raise TypeError(
TypeError: 'ContainerCollection' object is not callable. You might be trying to use the old (pre-2.0) API - use docker.APIClient if so.

这是 docker 的版本 我目前 运行ning:

$ docker version
Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:54:08 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:16 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

据我所知,目前 docker 引擎 API 的最新版本是 1.41

我错过了什么或做错了什么导致了这个错误?

再次浏览文档后,我相当确定以下内容是正确的。

docker_client = docker.DockerClient(base_url='unix://var/run/docker.sock')
docker_client.containers.list()

https://docker-py.readthedocs.io/en/stable/containers.html#docker.models.containers.ContainerCollection.list