Docker Machine: удалить машины, где STATE = Ошибка или ОШИБКИ не None или DOCKER = Неизвестно - PullRequest
1 голос
/ 03 октября 2019

Для вывода списка активных докеров на локальном компьютере мы можем использовать $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

1 Ответ

1 голос
/ 03 октября 2019

Использовать фильтр:

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

...