Docker 机器:删除 STATE = Error 或 ERRORS 不是 None 或 DOCKER = Unknown 的机器

Docker Machine: remove machines where STATE = Error or ERRORS is not None or DOCKER = Unknown

要在本地计算机上列出活动的 docker 机器,我们可以使用 $docker-machine ls.

给出以下内容:

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS

每一个都填充了一些东西,例如:

NAME                                       ACTIVE   DRIVER         STATE   URL   SWARM   DOCKER    ERRORS
api.horseshoe.v0.0.1.1570109766987.26    -        digitalocean   Error                 Unknown   GET https://api.digitalocean.com/v2/droplets/9999: 404 The resource you were accessing could not be found.

举个例子。

现在,要手动删除它,我会这样做:

$ docker-machine rm -f api.horseshoe.v0.0.1.1570109766987.26

但是,我想知道是否有一种方法 运行 一个命令可以删除所有满足以下条件的机器:

STATE = Error || DOCKER = Unknown || ERRORS is not None

使用过滤器:

test=`docker-machine ls --filter STATE=Error --filter label=DOCKER=Unknown -q`

使用它:

docker-machine rm -f $test

总计:

`docker-machine rm -f $(docker-machine ls --filter STATE=Error --filter label=DOCKER=Unknown -q)`

你也可以一步到位使用这两个命令,我只是为了举例而写的

this