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

MySQL 5.7.17 Installations- und Konfigurations-Tutorial unter Linux (Ubuntu)

Vorwort Ich habe MySQL 5.6 bereits installiert. D...

Flexibles Boxmodell von CSS und CSS3 zur Anpassung der Elementbreite (-höhe)

1. CSS realisiert eine feste Breite links und ein...

Einige Erfahrung im Aufbau des React Native-Projektframeworks

React Native ist ein plattformübergreifendes Fram...

Beispielanalyse zur Metadatenextraktion von MySQL und Oracle

Inhaltsverzeichnis Vorwort Was sind Metadaten? Ad...

Vue.js implementiert eine einfache Timerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Ubuntu installiert mehrere Versionen von CUDA und wechselt jederzeit

Ich werde nicht erklären, was CUDA ist, sondern d...

Die Magie des tbody-Tags beschleunigt die Anzeige von Tabelleninhalten

Sie haben sicher schon einmal die Webseiten andere...

Tutorial zur Installation der PyTorch-Entwicklungsumgebung unter Windows

Anaconda-Installation Anaconda ist ein Softwarepa...

Detaillierte Erklärung des Übergangsattributs einer einfachen CSS-Animation

1. Verständnis der Übergangsattribute 1. Das Über...

MySQL-Tutorial: Ausführliche Erklärung zum Unterabfragebeispiel

Inhaltsverzeichnis 1. Was ist eine Unterabfrage? ...