Programmgesteuert nach Docker-Installation suchen (sh-script)


7

Ist es möglich, per Shell-Skript zu überprüfen, ob Docker installiert ist.

Ich würde dies manuell überprüfen

sudo docker run --name hello-world-container hello-world
sudo docker rm hello-world-container

Ich möchte dies jedoch programmgesteuert überprüfen. Wenn dieser Test fehlschlägt, kann die Installationsroutine gestartet werden.

Aktualisieren

#!/bin/bash

which docker

if [ $? -eq 0 ]
then
    docker --version | grep "Docker version"
    if [ $? -eq 0 ]
    then
        echo "docker existing"
    else
        echo "install docker"
    fi
else
    echo "install docker" >&2
fi

Antworten:


6

Sie könnten versuchen, Folgendes auszuführen:

which docker

und Testen des Exit-Codes dieses Befehls. Wenn es 0 ist (erfolgreich), können Sie Folgendes ausführen:

docker --version

und grep nach einem bekannten Namen und Versionsmuster.


Ist es nicht genug zu überprüfen which docker? Warum muss ich docker --versiondanach suchen? Und wie kann ich den Exit-Code testen?
user3142695

Sie könnten sich mit dem Exit-Code des whichBefehls zufrieden geben , aber das Überprüfen der Ausgabe des docker --versionBefehls ist eine zusätzliche Sicherheit dafür, dass es sich um die dockererwartete ausführbare Datei handelt, anstatt um eine andere ausführbare Datei oder ein anderes Skript, das den Namen teilt. Beim Testen des Exit-Codes sehe ich, dass Ihre bearbeitete Frage eine Lösung enthält.
IvanGoneKrazy

Ich denke, das docker --versionwäre besser, wie Sie erklärt haben, aber ich weiß nicht, wie ich das überprüfen soll, da es sich um eine Zeichenfolge handelt, aus der ich die Versionsnummer erhalten möchte (die nicht undefiniert sein sollte).
user3142695

Sie würden ausführen docker --version | grep "Docker version". Wenn der Exit-Code lautet 0, liegt eine erfolgreiche Übereinstimmung vor, und die ausführbare Datei ist wahrscheinlich die ausführbare Docker-Datei.
IvanGoneKrazy

Oh ok. Verstehe das. Ist es möglich, beide zu einem zu kombinieren? Ich habe meinen Beitrag aktualisiert. Wie Sie sehen können, sieht mein Versuch sehr schlecht aus ... :-(
user3142695
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.