Netzwerk loeschen Funktion hinzugefügt (nur unbenutzte Netzwerke)
This commit is contained in:
@@ -15,9 +15,9 @@
|
|||||||
# Autor: Patrick Asmus
|
# Autor: Patrick Asmus
|
||||||
# Web: https://www.cleveradmin.de
|
# Web: https://www.cleveradmin.de
|
||||||
# Git-Reposit.: https://git.techniverse.net/scriptos/dockernet-inspector.git
|
# Git-Reposit.: https://git.techniverse.net/scriptos/dockernet-inspector.git
|
||||||
# Version: 1.3.0
|
# Version: 1.4.0
|
||||||
# Datum: 22.02.2026
|
# Datum: 22.03.2026
|
||||||
# Modifikation: Ineraktives Menü hinzugefügt, Fehlerbehandlung verbessert, Ausgabe formatiert, Kompatibilität erweitert
|
# Modifikation: Netzwerk loeschen Funktion hinzugefügt (nur unbenutzte Netzwerke)
|
||||||
#####################################################
|
#####################################################
|
||||||
|
|
||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
@@ -157,6 +157,54 @@ list_ips_all_networks() {
|
|||||||
print_dynamic_table "$table_data"
|
print_dynamic_table "$table_data"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Funktion zum Loeschen eines unbenutzten Netzwerks
|
||||||
|
delete_network() {
|
||||||
|
local nets net container_count
|
||||||
|
|
||||||
|
nets="$(docker network ls --format '{{.Name}}' 2>/dev/null || true)"
|
||||||
|
if [[ -z "$nets" ]]; then
|
||||||
|
echo "Fehler: Keine Docker Netzwerke gefunden."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Verfuegbare Netzwerke:"
|
||||||
|
select net in $nets; do
|
||||||
|
if [[ -n "$net" ]]; then
|
||||||
|
# Standardnetzwerke schuetzen
|
||||||
|
if [[ "$net" == "bridge" || "$net" == "host" || "$net" == "none" ]]; then
|
||||||
|
echo "FEHLER: Das Standard-Netzwerk '$net' kann nicht geloescht werden."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Pruefen ob Container das Netzwerk verwenden
|
||||||
|
container_count="$(docker network inspect "$net" --format '{{len .Containers}}' 2>/dev/null || echo 0)"
|
||||||
|
if [[ "$container_count" -gt 0 ]]; then
|
||||||
|
echo "FEHLER: Das Netzwerk '$net' wird aktuell von $container_count Container(n) verwendet und kann nicht geloescht werden."
|
||||||
|
echo ""
|
||||||
|
echo "Verbundene Container:"
|
||||||
|
docker network inspect "$net" --format '{{range $id, $c := .Containers}} - {{$c.Name}} ({{$c.IPv4Address}}){{println}}{{end}}' 2>/dev/null
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Sicherheitsabfrage
|
||||||
|
read -p "Soll das Netzwerk '$net' wirklich geloescht werden? (j/N): " confirm
|
||||||
|
if [[ "$confirm" == "j" || "$confirm" == "J" ]]; then
|
||||||
|
if docker network rm "$net" >/dev/null 2>&1; then
|
||||||
|
echo "Netzwerk '$net' wurde erfolgreich geloescht."
|
||||||
|
else
|
||||||
|
echo "FEHLER: Netzwerk '$net' konnte nicht geloescht werden."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Loeschvorgang abgebrochen."
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Ungueltige Auswahl. Bitte versuchen Sie es erneut."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# Interaktive Menü-Funktion
|
# Interaktive Menü-Funktion
|
||||||
interactive_menu() {
|
interactive_menu() {
|
||||||
while true; do
|
while true; do
|
||||||
@@ -169,9 +217,10 @@ interactive_menu() {
|
|||||||
echo "2. Detaillierte Infos zu einem Netzwerk"
|
echo "2. Detaillierte Infos zu einem Netzwerk"
|
||||||
echo "3. IPs eines Netzwerks anzeigen"
|
echo "3. IPs eines Netzwerks anzeigen"
|
||||||
echo "4. Alle belegten IPs anzeigen"
|
echo "4. Alle belegten IPs anzeigen"
|
||||||
|
echo "5. Netzwerk loeschen"
|
||||||
echo "0. Beenden"
|
echo "0. Beenden"
|
||||||
echo ""
|
echo ""
|
||||||
read -p "Bitte waehlen Sie eine Option (0-4): " choice
|
read -p "Bitte waehlen Sie eine Option (0-5): " choice
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
case "$choice" in
|
case "$choice" in
|
||||||
@@ -203,12 +252,15 @@ interactive_menu() {
|
|||||||
4)
|
4)
|
||||||
list_ips_all_networks
|
list_ips_all_networks
|
||||||
;;
|
;;
|
||||||
|
5)
|
||||||
|
delete_network
|
||||||
|
;;
|
||||||
0)
|
0)
|
||||||
echo "Auf Wiedersehen!"
|
echo "Auf Wiedersehen!"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "FEHLER: Ungueltige Eingabe '$choice'. Bitte geben Sie eine Nummer zwischen 0 und 4 ein."
|
echo "FEHLER: Ungueltige Eingabe '$choice'. Bitte geben Sie eine Nummer zwischen 0 und 5 ein."
|
||||||
sleep 1
|
sleep 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user