Как проверить, существует ли программная машина докеров?

Я использую docker-machine для управления облачными серверами. Я пишу несколько сценариев bash для автоматизации некоторых задач. Возникает вопрос: "Как проверить bash script, если докер-машина с определенным именем уже существует?". Мне нужно некоторое выражение, чтобы вернуть true, если оно существует, и false, если это не так.

Спасибо

Ответ 1

Просто запустите его через grep, если regexp достаточно для вас. Например, если у вас есть машина с именем foo:

$ docker-machine ls -q | grep '^foo$'

Должен работать и возвращать 0. Каретка соответствует началу строки, и пространство позволяет избежать частичных совпадений. Если он не соответствует, вы получите ненулевой код возврата.

Ответ 2

Вы можете использовать что-то вроде следующего:

docker-machine status some-machine 2> /dev/null || echo "Machine does not exists"

Ответ 3

Не гуру сценариев, но я бы сделал "docker-machine help", если эта команда запускается, а код выхода ($?) равен нулю, исполняемый файл док-машины доступен и работает. Если код возврата равен 127 (обычно это возвращается bash для не найденной команды) или ничего, кроме ненулевого, вы можете предположить, что либо докер-машина не установлена, либо работает неправильно.