Docker-Batch starten und alle Container schließen

Docker-Batch starten und alle Container schließen

Im Docker

Starten Sie alle Containerbefehle

Docker starten $(docker ps -a | awk '{ print $1}' | tail -n +2)

Im Docker

Alle Container-Befehle schließen

Docker-Stopp $(docker ps -a | awk '{ print $1}' | tail -n +2)

Ergänzung: Shell-Batchstart und -Löschen von Docker-Containern, basierend auf der Docker-Toolbox

Stoppen des Containers

stopp.sh
#!/bin/bash
containerIDs="8f78b7e6995b beeae59c6f41 5305c3db3670 bffc551a6b96 61f0fc8b1dc4 8e85a3b7bfe3 d15c4d2dc546 2a3c4eb14584 5e98077acc3a 13bac087b83d"
statusLived="leben"
statusdead="Tot"
notExistContainer="Keine"
Anzahl der Wiederholungen = 3
Funktion GetContainerStatus(){
 ContainerExistiert=$(docker ps -a | grep -i $1 | wc -l ) 
 wenn [ ${containerExist} -gt 0 ]
 Dann
 pid=$(Docker-Statistiken --Format "{{.PIDs}}" --no-stream $1)
 wenn [ "${pid}" != "0" ]
  Dann 
  echo "${statusLived}"
 anders
  echo "${statusdead}"
 fi
 anders
 echo "${notExistContainer}" 
 fi
}
Funktion StopContainer(){
 Docker-Stopp $1
}
für Container-ID in ${containerIDs}
 Tun
 für ((i=1;i<=${retryCount};i++))
 Tun
 status=$(GetContainerStatus ${containerID} )
 echo "Der Status des Containers ${containerID} ist ${status}"
 wenn [ "${status}" == ${statusdead} ]
 Dann
 echo "Container ${containerID} bereits gestoppt"
 brechen
 fi
 wenn [ "${status}" == ${notExistContainer} ]
 Dann
 echo "Container ${containerID} existierte nicht"
 brechen
 fi
 wenn [ "${status}" == ${statusLived} ]
 Dann
  echo "Container ${containerID} ist leer, Container stoppen"
  Container stoppen ${containerID}
  verifyStatus=$(GetContainerStatus ${containerID} )
  wenn [ "${verifyStatus}" == ${statusdead} ]
  Dann
  echo "Container ${containerID} erfolgreich stoppen"
  brechen
  anders
  echo "${i} erneut versuchen, Container zu stoppen"
  Container stoppen ${containerID}
  fi
 fi
 Erledigt
Erledigt

Hinweis: Die Container-IDs sind das, was Sie bereits erstellt haben. Der Docker-Container hier ist nginx

Legen Sie stop.sh unter d:/nginx ab.

Der Vorgang ist etwas langsam, bitte haben Sie Geduld.

Der Container wurde erfolgreich gestoppt.

Starten des Containers

#!/bin/bash
containerIDs="8f78b7e6995b
 beeae59c6f41
 5305c3db3670
 bffc551a6b96
 61f0fc8b1dc4
 8e85a3b7bfe3
 d15c4d2dc546
 2a3c4eb14584
 5e98077acc3a
 13bac087b83d"
statusLived="leben"
statusdead="Tot"
notExistContainer="Keine"
Anzahl der Wiederholungen = 3
Funktion GetContainerStatus(){
 ContainerExistiert=$(docker ps -a | grep -i $1 | wc -l ) 
 wenn [ ${containerExist} -gt 0 ]
 Dann
 pid=$(Docker-Statistiken --Format "{{.PIDs}}" --no-stream $1)
 wenn [ "${pid}" != "0" ]
  Dann 
  echo "${statusLived}"
 anders
  echo "${statusdead}"
 fi
 anders
 echo "${notExistContainer}" 
 fi
}
Funktion StartContainer(){
 Docker-Neustart $1
}
für Container-ID in ${containerIDs}
 Tun
 für((i=1;i<=${retryCount};i++))
 Tun
 status=$(GetContainerStatus ${containerID} )
 echo "Der Status des Containers ${containerID} ist ${status}"
 wenn [ "${status}" == ${statusLived} ]
 Dann
 echo "Container ${containerID} läuft bereits"
 brechen
 fi
 wenn [ "${status}" == ${notExistContainer} ]
 Dann
 echo "Container ${containerID} existierte nicht"
 brechen
 fi
 wenn [ "${status}" == ${statusdead} ]
 Dann
 echo "Container ${containerID} gestoppt, Container starten"
 StartContainer ${containerID}
 verifyStatus=$(GetContainerStatus ${containerID} )
 wenn [ "${verifyStatus}" == ${statusLived} ]
  Dann
  echo "Container ${containerID} erfolgreich gestartet"
  brechen
 anders
  echo "${i} erneuter Versuch, Container zu starten"
  StartContainer ${containerID}
 fi
 fi
 Erledigt
Erledigt

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Jedes Mal, wenn Docker einen Container startet, werden die IP und die Hosts mit den angegebenen Operationen
  • Detaillierte Erläuterung der Startreihenfolge des Docker-Containers mithilfe eines Shell-Skripts
  • Docker ändert die Konfigurationsinformationen eines nicht gestarteten Containers
  • Dockerfile-Implementierungscode beim Starten von zwei Prozessen in einem Docker-Container
  • Docker-Dateispeicherpfad, Befehlsvorgang zum Starten des Containers abrufen
  • Lösen Sie das Problem, dass Docker-Container sofort nach dem Start beendet werden

<<:  Detaillierte Schritte zum Erstellen der TypeScript-Umgebung und Bereitstellen in VSCode

>>:  MySQL-Abfrage redundanter Indizes und ungenutzter Indexoperationen

Artikel empfehlen

Docker-Image-Zugriff auf den lokalen Elasticsearch-Port-Vorgang

Wenn Sie den vom Docker-Stack bereitgestellten Im...

MySQL-Sortierung zum Abrufen eines Ranking-Beispielcodes

Der Code sieht folgendermaßen aus: SELECT @i:=@i+...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (6)

Verwandte Artikel: Anfänger lernen einige HTML-Ta...

MySQL-Passwort ist korrekt, aber keine lokale Anmeldung möglich -1045

MySQL-Passwort ist korrekt, aber keine lokale Anm...

Detaillierte Schritte zum Erstellen eines Dateiservers in Windows Server 2012

Der Dateiserver ist einer der am häufigsten verwe...

CSS, um den kleinen scharfen Eckeneffekt von Blasen zu erzielen

Effektbild (die Rahmenfarbe ist zu hell, setzen S...

Implementierung des Wasserfall-Layouts im Uni-App-Projekt

GitHub-Adresse, Sie können es mit einem Stern mar...

Implementierung einer Warenkorbfunktion basierend auf Vuex

In diesem Artikelbeispiel wird der spezifische Co...

Beispielanalyse für MySQL-Jointabelle und automatische ID-Inkrementierung

Wie schreibt man „join“? Wenn Sie „Left Join“ ver...

So verwenden Sie JS zum Implementieren des Wasserfalllayouts von Webseiten

Inhaltsverzeichnis Vorwort: Was ist ein Wasserfal...

Zwei Möglichkeiten, damit IE6 Bilder im PNG-24-Format normal anzeigt

Methode 1: Bitte fügen Sie den folgenden Code nach...

MySQL-Inspektionsskript (unbedingt lesen)

Wie unten dargestellt: #!/usr/bin/env python3.5 p...

Spezifische Methode zum Löschen des MySQL-Dienstes

MySQL meldet den folgenden Fehler Ich ging zu „Sy...