gpt4 book ai didi

python docker 客户端仅列出正在运行的容器

转载 作者:行者123 更新时间:2023-12-01 01:16:23 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。我有 3 个这样的 docker 容器 -

root@dimension-VirtualBox:/home/dimension/neo4j# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eee581b2f493 neo4j:3.3.3 "/docker-entrypoint.…" 3 months ago Up 22 minutes 0.0.0.0:7474->7474/tcp, 7473/tcp, 0.0.0.0:7687->7687/tcp skill-ontology
bb99a4eb65ad neo4j:3.3.3 "/docker-entrypoint.…" 3 months ago Exited (0) 22 minutes ago skill-ontology-old
2a3a1e300782 neo4j:3.3.3 "/docker-entrypoint.…" 3 months ago Exited (0) 30 hours ago romantic_mccarthy

我编写了一个简单的 python 脚本来使用 docker 的 python 库列出我的 docker 容器。我正在使用 docker==3.7.0 版本的库。这是我的代码。我正在使用 ubuntu 18.04 机器

import docker
# same result with below line
#cli = docker.client.DockerClient(base_url='tcp://127.0.0.1:2375')
cli = docker.DockerClient(base_url='tcp://127.0.0.1:2375')
containers = cli.containers.list()

cont =containers[0]
print(len(containers))
print(cont.short_id)

结果是

1
eee581b2f4

它打印 1 作为输出,但它应该打印 3。

我已将 ExecStart 参数设置为 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock在我的 /lib/systemd/system/docker.service 文件

我是否需要以某种不同的方式连接到 docker 才能获取所有 docker 容器的信息。

最佳答案

尝试:

containers = cli.containers.list(all=True)

来自文档:

list(**kwargs)

List containers. Similar to the docker ps command.
Parameters:

all (bool) – Show all containers. Only running containers are shown by default

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

关于python docker 客户端仅列出正在运行的容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54306722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com