Ich bin neu im Docker. Ich schreibe ein einfaches Skript für Docker. Ich muss prüfen, ob das Docker läuft oder nicht. Gibt es einen Befehl zum Überprüfen des Containernamens?
Wenn Sie nach einem bestimmten Container suchen, können Sie Folgendes ausführen:
docker inspect -f '{{.State.Running}}' $container_name
Wenn Sie wissen möchten, ob dockerd selbst auf dem lokalen Computer ausgeführt wird und Sie systemd installiert haben, können Sie Folgendes ausführen:
systemctl show --property ActiveState docker
Sie können auch mit docker info
oder docker version
eine Verbindung zum Docker herstellen. Wenn der Dämon nicht verfügbar ist, wird ein Fehler ausgegeben.
Am Ende habe ich verwendet
docker info
mit einem Bash-Skript können Sie überprüfen, ob die Docker-Engine ausgeführt wird.
sie können den Docker-Status überprüfen, indem Sie systemctl is-active docker
verwenden.
➜ ~ systemctl is-active docker
active
sie können es verwenden als:
➜ ~ if [ `systemctl is-active docker` = "active" ]; then echo "is alive :)" ; fi
is alive :)
➜ ~ Sudo systemctl stop docker
➜ ~ if [ `systemctl is-active docker` = "active" ]; then echo "is alive :)" ; fi
* empty response *
Für OS X-Benutzer (Mojave 10.14.3)
Hier ist, was ich in meinem Bash-Skript benutze, um zu testen, ob Docker ausgeführt wird oder nicht
# Check if docker is running
docker_state=$(docker info >/dev/null 2>&1)
if [[ $? -ne 0 ]]; then
echo "Docker does not seem to be running, run it first and retry"
exit 1
fi
Alle Container auflisten:docker container ls -a
ls = Liste
- a = alle
Überprüfen Sie die Spalte "Status"
Jeder Docker-Befehl (außer docker -v
), wie docker ps
Wenn Docker ausgeführt wird, erhalten Sie eine gültige Antwort. Andernfalls erhalten Sie eine Meldung, die besagt, dass Ihr Docker-Dämon läuft.
Sie können auch Ihren Task-Manager überprüfen.
Sie können mit diesem Befehl systemctl status docker
prüfen, ob der Docker-Status angezeigt wird. Wenn Sie beginnen möchten, können Sie systemctl start docker
anstelle von systemctl
verwenden. Sie können auch service
, service docker status
und service docker start
versuchen.
Sie können auch mit dem folgenden Befehl überprüfen, ob ein bestimmter Docker-Container ausgeführt wird oder nicht:
docker inspect postgres | grep "Running"
Dieser Befehl prüft, ob zum Beispiel mein Postgres-Container läuft oder nicht und gibt die Ausgabe als "Running": true zurück
Hoffe das hilft.
Wenn das zugrunde liegende Ziel lautet: "Wie kann ich einen Container starten, wenn Docker gestartet wird?"
Wir können Dockers Neustart-Richtlinie verwenden
So fügen Sie einem vorhandenen Container eine Neustartrichtlinie hinzu:
Docker: Hinzufügen einer Neustartrichtlinie zu einem bereits erstellten Container
Beispiel:
docker update --restart=always <container>