代码之家  ›  专栏  ›  技术社区  ›  Anurag Sharma

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

  •  1
  • Anurag Sharma  · 技术社区  · 7 年前

    我面临一个奇怪的问题。我有3个这样的码头集装箱-

    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脚本,使用python库为docker列出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 file

    我需要以某种不同的方式连接到Docker才能获取我所有Docker容器的信息吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Dmytro Prylipko    7 年前

    尝试:

    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

    推荐文章