docs: README minimiert, docs/-Ordner mit Schnellstart, Installation, Verwendung, Beispielen, Fehlerbehandlung und technischen Details angelegt
This commit is contained in:
190
README.md
190
README.md
@@ -2,202 +2,16 @@
|
||||
|
||||
Ein Bash-Script zur Verwaltung und Analyse von Docker-Netzwerken.
|
||||
|
||||
## Beschreibung
|
||||
Weitere Informationen in der [Dokumentation](docs/README.md).
|
||||
|
||||
**Dockernet Inspector** hilft bei der täglichen Arbeit mit Docker-Netzwerken durch zwei Nutzungsmodi:
|
||||
## Schnellstart
|
||||
|
||||
**Interaktiver Modus (Menü):**
|
||||
- Benutzerfreundliches Menü ohne Kommandozeilenargumente
|
||||
- Intuitive Netzwerk-Auswahl aus einer Liste
|
||||
- Fehlerbehandlung bei ungültigen Eingaben
|
||||
|
||||
**Kommandozeilen-Modus (CLI):**
|
||||
- Schnelle automatisierte Abfragen
|
||||
- Scripting-freundlich
|
||||
- Rückwärtskompatibel
|
||||
|
||||
Das Script bietet vier Hauptfunktionen:
|
||||
|
||||
1. Alle Netzwerke auflisten
|
||||
2. Netzwerk-Details inspizieren
|
||||
3. Belegte IPs pro Netzwerk anzeigen
|
||||
4. Belegte IPs in allen Netzwerken anzeigen (aufsteigend sortiert)
|
||||
|
||||
Beim Inspizieren eines Netzwerks werden u. a. folgende Informationen angezeigt:
|
||||
- Netzwerk-Driver (bridge, overlay, host, ...)
|
||||
- Bridge-Interface auf dem Host
|
||||
- Subnet und Gateway
|
||||
- Interface-Status (operstate)
|
||||
- RX/TX Netzwerk-Statistiken
|
||||
|
||||
## Installation
|
||||
|
||||
1. Repository klonen:
|
||||
```bash
|
||||
git clone https://git.techniverse.net/scriptos/dockernet-inspector.git
|
||||
cd dockernet-inspector
|
||||
```
|
||||
|
||||
2. Script ausführbar machen:
|
||||
```bash
|
||||
chmod +x dockernet-inspector.v1.sh
|
||||
```
|
||||
|
||||
## Verwendung
|
||||
|
||||
Das Script kann auf zwei Arten verwendet werden:
|
||||
|
||||
### 1. Interaktiver Modus (Menü)
|
||||
|
||||
```bash
|
||||
bash ./dockernet-inspector.v1.sh
|
||||
```
|
||||
|
||||
Das Script startet dann ein interaktives Menü, über das Sie folgende Optionen wählen können:
|
||||
- **1** - Alle Netzwerke auflisten
|
||||
- **2** - Detaillierte Infos zu einem Netzwerk (mit Netzwerk-Auswahl)
|
||||
- **3** - IPs eines Netzwerks anzeigen (mit Netzwerk-Auswahl)
|
||||
- **4** - Alle belegten IPs anzeigen
|
||||
- **0** - Beenden
|
||||
|
||||
### 2. Kommandozeilen-Modus (CLI)
|
||||
|
||||
```bash
|
||||
bash ./dockernet-inspector.v1.sh [BEFEHL] [OPTIONEN]
|
||||
```
|
||||
|
||||
### Verfügbare Befehle
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
|--------|--------------|
|
||||
| *(keine)* | Startet interaktiven Modus |
|
||||
| `networks` | Listet alle verfügbaren Docker-Netzwerke auf |
|
||||
| `inspect <netzwerk>` | Zeigt detaillierte Informationen zu einem Netzwerk |
|
||||
| `ips <netzwerk>` | Zeigt alle belegten IPv4-Adressen im angegebenen Netzwerk |
|
||||
| `ips-all` | Zeigt alle belegten IPv4-Adressen in allen Docker-Netzwerken (aufsteigend) |
|
||||
| `<netzwerk>` | Alias für `inspect <netzwerk>` (Rückwärtskompatibilität) |
|
||||
| `help`, `-h`, `--help` | Zeigt die Hilfe an |
|
||||
|
||||
### Beispiele
|
||||
|
||||
#### Interaktiver Modus
|
||||
|
||||
```bash
|
||||
# Interaktives Menü starten
|
||||
bash ./dockernet-inspector.v1.sh
|
||||
|
||||
# Output:
|
||||
# ================================================================================
|
||||
# Dockernet Inspector - Interaktives Menü
|
||||
# ================================================================================
|
||||
#
|
||||
# 1. Alle Netzwerke auflisten
|
||||
# 2. Detaillierte Infos zu einem Netzwerk
|
||||
# 3. IPs eines Netzwerks anzeigen
|
||||
# 4. Alle belegten IPs anzeigen
|
||||
# 0. Beenden
|
||||
#
|
||||
# Bitte waehlen Sie eine Option (0-4):
|
||||
```
|
||||
|
||||
Im Menü können Sie einfach die Nummer eingeben. Bei den Optionen 2 und 3 werden Sie aufgefordert, ein Netzwerk aus einer Liste zu wählen.
|
||||
|
||||
#### Kommandozeilen-Modus
|
||||
|
||||
```bash
|
||||
# Alle Docker-Netzwerke auflisten
|
||||
bash ./dockernet-inspector.v1.sh networks
|
||||
|
||||
# Netzwerk analysieren (explizit)
|
||||
bash ./dockernet-inspector.v1.sh inspect bridge
|
||||
|
||||
# Netzwerk analysieren (Alias)
|
||||
bash ./dockernet-inspector.v1.sh my-custom-network
|
||||
|
||||
# Belegte IPs eines Netzwerks
|
||||
bash ./dockernet-inspector.v1.sh ips dockernet
|
||||
|
||||
# Belegte IPs in allen Netzwerken
|
||||
bash ./dockernet-inspector.v1.sh ips-all
|
||||
|
||||
# Hilfe
|
||||
bash ./dockernet-inspector.v1.sh help
|
||||
```
|
||||
|
||||
## Ausgabe-Beispiele
|
||||
|
||||
### `networks`
|
||||
|
||||
```text
|
||||
Verfügbare Docker Netzwerke:
|
||||
==============================
|
||||
ID NAME DRIVER SCOPE
|
||||
abcd1234efgh5678ijkl9012 bridge bridge local
|
||||
mnop4567qrst8901uvwx2345 host host local
|
||||
yzab3456cdef7890ghij1234 mynet bridge local
|
||||
```
|
||||
|
||||
### `inspect`
|
||||
|
||||
```text
|
||||
Docker-Netzwerk : my-network
|
||||
Driver : bridge
|
||||
Bridge-Interface : br-1234567890ab
|
||||
Subnet/Gateway : 172.18.0.0/16 / 172.18.0.1
|
||||
OperState : up
|
||||
RX bytes/packets : 123456 / 789
|
||||
TX bytes/packets : 654321 / 456
|
||||
```
|
||||
|
||||
### `ips`
|
||||
|
||||
```text
|
||||
Belegte IP-Adressen im Netzwerk 'dockernet':
|
||||
========================================
|
||||
CONTAINER IP
|
||||
dozzle 172.16.0.95
|
||||
grafana 172.16.0.129
|
||||
```
|
||||
|
||||
### `ips-all`
|
||||
|
||||
```text
|
||||
Belegte IP-Adressen in allen Netzwerken (aufsteigend):
|
||||
=======================================================
|
||||
NETZWERK CONTAINER IP
|
||||
dockernet dozzle 172.16.0.95
|
||||
datagerry.dockernetwork.local datagerry-nginx 172.16.14.10
|
||||
matrixnetwork matrix-synapse-db 172.19.0.11
|
||||
```
|
||||
|
||||
## Fehlerbehandlung
|
||||
|
||||
Das Script gibt unter anderem folgende Fehlermeldungen aus:
|
||||
|
||||
**CLI-Modus:**
|
||||
- Keine Netzwerk-Angabe bei `inspect`: `Fehler: Netzwerkname erforderlich. Verwendung: $0 inspect <docker-network-name>`
|
||||
- Keine Netzwerk-Angabe bei `ips`: `Fehler: Netzwerkname erforderlich. Verwendung: $0 ips <docker-network-name>`
|
||||
- Netzwerk nicht gefunden: `Fehler: Netzwerk '<name>' nicht gefunden.`
|
||||
- Docker-Netzwerke konnten nicht abgerufen werden: `Fehler: Docker Netzwerke konnten nicht abgerufen werden.`
|
||||
|
||||
**Interaktiver Modus:**
|
||||
- Ungültige Eingabe: `FEHLER: Ungueltige Eingabe. Bitte geben Sie eine Nummer zwischen 0 und 4 ein.`
|
||||
- Keine Netzwerke vorhanden: `Fehler: Keine Docker Netzwerke gefunden.`
|
||||
|
||||
Das Script unterstützt auch Fehlerbehandlung bei ungültigen Eingaben und ermöglicht dem Nutzer, die Eingabe zu korrigieren, ohne dass das Script abstürzt.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Docker ist installiert und läuft
|
||||
- Bash (Version 4+ empfohlen)
|
||||
- Linux-Host (für `/sys/class/net/` beim `inspect`-Befehl)
|
||||
|
||||
## Technische Details
|
||||
|
||||
Das Script nutzt:
|
||||
- `docker network ls` und `docker network inspect`
|
||||
- `sort -V` für natürliche IP-Sortierung
|
||||
- `column -t -s $'\t'` für dynamisch ausgerichtete Tabellen
|
||||
- `set -euo pipefail` für robuste Script-Ausführung
|
||||
|
||||
## Lizenz
|
||||
|
||||
13
docs/README.md
Normal file
13
docs/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Dockernet Inspector – Dokumentation
|
||||
|
||||
Willkommen in der Dokumentation des **Dockernet Inspectors**.
|
||||
|
||||
## Inhaltsverzeichnis
|
||||
|
||||
| Dokument | Beschreibung |
|
||||
|----------|--------------|
|
||||
| [Installation](installation.md) | Voraussetzungen, Klonen und Einrichtung |
|
||||
| [Verwendung](usage.md) | Modi, Befehle und Optionen |
|
||||
| [Beispiele](examples.md) | Ausgabe-Beispiele zu allen Befehlen |
|
||||
| [Fehlerbehandlung](error-handling.md) | Fehlermeldungen und deren Bedeutung |
|
||||
| [Technische Details](technical.md) | Voraussetzungen und verwendete Tools |
|
||||
19
docs/error-handling.md
Normal file
19
docs/error-handling.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Fehlerbehandlung
|
||||
|
||||
## CLI-Modus
|
||||
|
||||
| Situation | Fehlermeldung |
|
||||
|-----------|---------------|
|
||||
| Kein Netzwerkname bei `inspect` | `Fehler: Netzwerkname erforderlich. Verwendung: $0 inspect <docker-network-name>` |
|
||||
| Kein Netzwerkname bei `ips` | `Fehler: Netzwerkname erforderlich. Verwendung: $0 ips <docker-network-name>` |
|
||||
| Netzwerk nicht gefunden | `Fehler: Netzwerk '<name>' nicht gefunden.` |
|
||||
| Docker nicht erreichbar | `Fehler: Docker Netzwerke konnten nicht abgerufen werden.` |
|
||||
|
||||
## Interaktiver Modus
|
||||
|
||||
| Situation | Fehlermeldung |
|
||||
|-----------|---------------|
|
||||
| Ungültige Menü-Eingabe | `FEHLER: Ungueltige Eingabe. Bitte geben Sie eine Nummer zwischen 0 und 4 ein.` |
|
||||
| Keine Netzwerke vorhanden | `Fehler: Keine Docker Netzwerke gefunden.` |
|
||||
|
||||
Bei ungültigen Eingaben im interaktiven Modus bricht das Script nicht ab – der Nutzer kann die Eingabe korrigieren.
|
||||
62
docs/examples.md
Normal file
62
docs/examples.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Ausgabe-Beispiele
|
||||
|
||||
## `networks`
|
||||
|
||||
```text
|
||||
Verfügbare Docker Netzwerke:
|
||||
================================================================================
|
||||
ID NAME DRIVER SCOPE
|
||||
------------------------------------------------------------------------------------
|
||||
abcd1234efgh5678ijkl9012 bridge bridge local
|
||||
mnop4567qrst8901uvwx2345 host host local
|
||||
yzab3456cdef7890ghij1234 mynet bridge local
|
||||
```
|
||||
|
||||
## `inspect`
|
||||
|
||||
```text
|
||||
Docker-Netzwerk : my-network
|
||||
Driver : bridge
|
||||
Bridge-Interface : br-1234567890ab
|
||||
Subnet/Gateway : 172.18.0.0/16 / 172.18.0.1
|
||||
OperState : up
|
||||
RX bytes/packets : 123456 / 789
|
||||
TX bytes/packets : 654321 / 456
|
||||
```
|
||||
|
||||
## `ips`
|
||||
|
||||
```text
|
||||
Belegte IP-Adressen im Netzwerk 'dockernet':
|
||||
================================================================================
|
||||
CONTAINER IP
|
||||
dozzle 172.16.0.95
|
||||
grafana 172.16.0.129
|
||||
```
|
||||
|
||||
## `ips-all`
|
||||
|
||||
```text
|
||||
Belegte IP-Adressen in allen Netzwerken (aufsteigend):
|
||||
================================================================================
|
||||
NETZWERK CONTAINER IP
|
||||
dockernet dozzle 172.16.0.95
|
||||
datagerry.dockernetwork.local datagerry-nginx 172.16.14.10
|
||||
matrixnetwork matrix-synapse-db 172.19.0.11
|
||||
```
|
||||
|
||||
## Interaktives Menü
|
||||
|
||||
```text
|
||||
================================================================================
|
||||
Dockernet Inspector - Interaktives Menü
|
||||
================================================================================
|
||||
|
||||
1. Alle Netzwerke auflisten
|
||||
2. Detaillierte Infos zu einem Netzwerk
|
||||
3. IPs eines Netzwerks anzeigen
|
||||
4. Alle belegten IPs anzeigen
|
||||
0. Beenden
|
||||
|
||||
Bitte waehlen Sie eine Option (0-4):
|
||||
```
|
||||
22
docs/installation.md
Normal file
22
docs/installation.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Installation
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Docker ist installiert und läuft
|
||||
- Bash (Version 4+ empfohlen)
|
||||
- Linux-Host (für `/sys/class/net/` beim `inspect`-Befehl)
|
||||
|
||||
## Einrichtung
|
||||
|
||||
1. Repository klonen:
|
||||
|
||||
```bash
|
||||
git clone https://git.techniverse.net/scriptos/dockernet-inspector.git
|
||||
cd dockernet-inspector
|
||||
```
|
||||
|
||||
2. Script ausführbar machen:
|
||||
|
||||
```bash
|
||||
chmod +x dockernet-inspector.v1.sh
|
||||
```
|
||||
17
docs/technical.md
Normal file
17
docs/technical.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Technische Details
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Docker ist installiert und läuft
|
||||
- Bash Version 4+
|
||||
- Linux-Host (für `/sys/class/net/` beim `inspect`-Befehl)
|
||||
|
||||
## Verwendete Tools
|
||||
|
||||
| Tool | Zweck |
|
||||
|------|-------|
|
||||
| `docker network ls` | Alle Netzwerke auflisten |
|
||||
| `docker network inspect` | Netzwerk-Details abfragen |
|
||||
| `sort -V` | Natürliche IP-Sortierung |
|
||||
| `column -t -s $'\t'` | Dynamisch ausgerichtete Tabellenausgabe |
|
||||
| `/sys/class/net/` | Interface-Status und RX/TX-Statistiken |
|
||||
50
docs/usage.md
Normal file
50
docs/usage.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Verwendung
|
||||
|
||||
Das Script kann auf zwei Arten verwendet werden.
|
||||
|
||||
## Interaktiver Modus (Menü)
|
||||
|
||||
```bash
|
||||
bash ./dockernet-inspector.v1.sh
|
||||
```
|
||||
|
||||
Das Script startet ein interaktives Menü mit folgenden Optionen:
|
||||
|
||||
- **1** – Alle Netzwerke auflisten
|
||||
- **2** – Detaillierte Infos zu einem Netzwerk (mit Netzwerk-Auswahl)
|
||||
- **3** – IPs eines Netzwerks anzeigen (mit Netzwerk-Auswahl)
|
||||
- **4** – Alle belegten IPs anzeigen
|
||||
- **0** – Beenden
|
||||
|
||||
Bei den Optionen **2** und **3** wird eine Netzwerkliste angezeigt, aus der per Nummer ausgewählt werden kann.
|
||||
|
||||
## Kommandozeilen-Modus (CLI)
|
||||
|
||||
```bash
|
||||
bash ./dockernet-inspector.v1.sh [BEFEHL] [OPTIONEN]
|
||||
```
|
||||
|
||||
### Verfügbare Befehle
|
||||
|
||||
| Befehl | Beschreibung |
|
||||
|--------|--------------|
|
||||
| *(keine)* | Startet den interaktiven Modus |
|
||||
| `networks` | Listet alle verfügbaren Docker-Netzwerke auf |
|
||||
| `inspect <netzwerk>` | Zeigt detaillierte Informationen zu einem Netzwerk |
|
||||
| `ips <netzwerk>` | Zeigt alle belegten IPv4-Adressen im angegebenen Netzwerk |
|
||||
| `ips-all` | Zeigt alle belegten IPv4-Adressen in allen Docker-Netzwerken (aufsteigend sortiert) |
|
||||
| `<netzwerk>` | Alias für `inspect <netzwerk>` (Rückwärtskompatibilität) |
|
||||
| `help`, `-h`, `--help` | Zeigt die Hilfe an |
|
||||
|
||||
### Kurzbeispiele
|
||||
|
||||
```bash
|
||||
bash ./dockernet-inspector.v1.sh networks
|
||||
bash ./dockernet-inspector.v1.sh inspect bridge
|
||||
bash ./dockernet-inspector.v1.sh my-custom-network
|
||||
bash ./dockernet-inspector.v1.sh ips dockernet
|
||||
bash ./dockernet-inspector.v1.sh ips-all
|
||||
bash ./dockernet-inspector.v1.sh help
|
||||
```
|
||||
|
||||
Ausführliche Ausgabe-Beispiele sind in [examples.md](examples.md) zu finden.
|
||||
Reference in New Issue
Block a user