2015-06-10 5 views
10

Ich verwende docker-machine, um meine Cloud-Server zu verwalten. Ich schreibe einige Bash-Skripte, um einige Aufgaben zu automatisieren. Die Frage ist: "Wie kann ich das Bash-Skript einchecken, wenn Docker-Maschine mit dem spezifischen Namen bereits existiert?" Ich brauche einen Ausdruck, um wahr zurückzukommen, wenn es existiert, und falsch, wenn das nicht der Fall ist.Wie überprüft man, ob Docker-Maschine programmgesteuert existiert?

Dank

+0

Blick auf die Ausgabe von 'die Docker-machine' und prüfen Sie, ob die Datei vorhanden ist? Es sollte einen besseren Weg geben – user2915097

Antwort

1

kein Scripting-Guru, aber ich würde ein „docker-machine help“ tun, wenn dieser Befehl ausgeführt wird und der Exit-Code ($?) Gleich Null ist, ist die Docker-Maschine ausführbar und Funktion zur Verfügung. Wenn der Rückkehrcode 127 ist (normalerweise wird dieser Wert von bash zurückgegeben, weil der Befehl nicht gefunden wurde) oder nicht von Null, können Sie davon ausgehen, dass entweder docker-machine nicht installiert ist oder nicht ordnungsgemäß ausgeführt wird.

+0

Ich denke du meinst "Exit-Code ($?)" –

+0

@ChandanNayak Danke für die Korrektur, ja, ich meinte $ ?. Die Antwort wurde aktualisiert. –

11

Führen Sie es einfach durch grep, wenn eine Regexp für Sie gut genug ist. Wenn Sie zum Beispiel eine Maschine namens foo:

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

Sollte funktionieren und Rückgabe von 0. Der caret entspricht dem Anfang der Zeile und der Raum vermeidet teilweise Übereinstimmungen. Wenn es nicht übereinstimmt, erhalten Sie einen Rückkehrcode ungleich null.

+0

10x! Das war genau das, was ich über – wildsurfer

7

Sie können so etwas wie die folgenden verwenden:

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

fragte Ich finde diese Lösung sehr sauber. – Abhinav