160 lines
4.4 KiB
Markdown
160 lines
4.4 KiB
Markdown
# Dockernet Inspector
|
|
|
|
Ein Bash-Script zur Verwaltung und Analyse von Docker-Netzwerken.
|
|
|
|
## Beschreibung
|
|
|
|
**Dockernet Inspector** hilft bei der täglichen Arbeit mit Docker-Netzwerken und 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
|
|
|
|
### Syntax
|
|
|
|
```bash
|
|
bash ./dockernet-inspector.v1.sh [BEFEHL] [OPTIONEN]
|
|
```
|
|
|
|
### Verfügbare Befehle
|
|
|
|
| Befehl | Beschreibung |
|
|
|--------|--------------|
|
|
| `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
|
|
|
|
```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:
|
|
|
|
- Kein Befehl angegeben: `Fehler: Befehl erforderlich. Verwendung: $0 networks|inspect|ips|ips-all|help`
|
|
- 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.`
|
|
|
|
## 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
|
|
|
|
Siehe [LICENSE](./LICENSE).
|
|
|
|
## Autor
|
|
|
|
**Patrick Asmus**
|
|
- Website: [https://www.cleveradmin.de](https://www.cleveradmin.de)
|
|
- Git: [https://git.techniverse.net/scriptos/dockernet-inspector.git](https://git.techniverse.net/scriptos/dockernet-inspector.git)
|
|
|
|
## Version
|
|
|
|
- **Version:** 1.2.0
|
|
- **Datum:** 18.02.2026
|
|
- **Modifikation:** IP-Listen pro Netzwerk und netzwerkübergreifend hinzugefügt
|