在Docker Python SDK中找不到“docker node ps”的等价物

时间:2017-04-21 07:59:51

标签: python docker sdk

我正在使用官方的Docker SDK for Python,但我找不到该命令的等效内容:

docker node ps <machine_name>

它存在吗?

我想知道是否有办法显示节点上运行的每个任务,而无需使用节点上的过滤器获取每个服务的每个任务,并根据结果构建列表。

编辑:

在我的情况下,我想获得'docker node ps'命令的NAME列。

使用以下代码我将获取在特定计算机上运行的每个任务的服务名称(因此NAME列没有索引以在副本之间产生差异)

client = docker.from_env()

def dockerNodePs(machine_name):
    return [s.attrs['Spec']['Name'] for s in client.services.list()
        for _ in s.tasks({'node': machine_name, 
                          'desired-state': 'Running'})]

它与'docker node ps'结果不匹配,但它几乎是我所需要的。所以我发布它是为了帮助其他人面对同样的问题。

1 个答案:

答案 0 :(得分:0)

确实如此,link to the documentation

使用以下内容获取所有管理器节点...

    public void getAllDir(File dir) {
        String pdfPattern = ".pdf or .txt or .jpg etc..";

        File listFile[] = dir.listFiles();

        if (listFile != null) {
            for (int i = 0; i < listFile.length; i++) {

                if (listFile[i].isDirectory()) {
                    getAllDir(listFile[i]);
                } else {
                  if (listFile[i].getName().endsWith(pdfPattern)){
                                      //Do what ever u want

                  }
                }
            }
        }    
    }


and call this function like

getAllDir(Environment.getExternalStorageDirectory());