JSON¶
Syntax JSON¶
Bei der Analyse von Images und Containern hilft das docker [...] inspect
Kommando und es ergeben sich JSON Codes. Die Ausgaben entstehen also
in Form von JSON Dateien
(JSON Link Wikipdia).
Auch die Auflistungen von Images oder Containern kann man in JSON Formaten erzeugen. Es ergeben sich also divers Kontakte mit diesem Datenformat.
{
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com",
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
},
"phoneNumbers": [
{
"type": "home",
"number": "555-555-1234"
},
{
"type": "mobile",
"number": "555-555-5678"
}
]
}
Bitte denken Sie beim Bearbeiten von JSON-Dateien an folgende Umsetzungen:
Kommas und Hochkommas sauber setzen - kein Komma mehr hinter dem letzten Listen- oder Dictionary-Element
Saubere eckige, geschweifte Klammern
Keine Kommentare
Im Seminar folgen praktische Tests und Empfehlungen für saubere Ausgaben, Formatierungen und Filterungen.
Tool jq und yq¶
Die Tools müssen ggf. noch nachinstalliert werden: z.B.
sudo apt install jq yq)
Das kann man auch für die verbesserte Ausgabe von manuellen HTTP-RESTful-Api Docker-Test mit Webbrowser curl nutzen:
curl -s --unix-socket /var/run/docker.sock http://localhost/images/json | jq
Anm./Erinnerung: die Nutzung eines Unix-Sockets kann sicherheitstechnisch einen Nachteil darstellen.
Beispiel: (Kurzerläuterung: JSON als Array interpretieren) - zur weiteren Hilfe gerne auch grafische Werkzeuge wie JSONCrack (s.u.)
Image Inspektion - nur Info zum Creation Date/Time ausgeben:
docker image inspect hello-world:latest | jq '.[0].Created'
Links zu Tool jq und yq:
Hinweis
JSON-Dokumente sind eine gültige Untermenge von YAML. Jedes JSON-Dokument ist auch ein gültiges YAML-Dokument.
JSON CRACK¶
Aktuell (2024) finden sich bei einer Online-Recherche zu Visualisierungstools rund um JSON viele Werkzeuge und da habe ich noch nicht mal die AI-Spielereien bedacht. Ich habe vor Jahren JSON CRACK entdeckt und schätzen gelernt.
Online Editor zu JSON CRACK: https://jsoncrack.com/editor
JSON CRACK Editor - Online oder Offline¶
Mittlerweile gibt es auch eine VS Code Extension jsoncrack (VS Code Marketplace Link Jsoncrack).
Go Templates¶
Die Ausgabe von Docker Kommandos ist auch über Go-Templates möglich und ergeben auf Wunsch JSON Formate.
docker image inspect alpine:latest --format '{{.Config.Cmd}}'
[/bin/sh]
docker image inspect alpine:latest --format '{{json .Config.Env}}' | jq
[
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
]
# weitere Beispiele
docker inspect -f "{{.State.Status}}" mariadb-test5
docker inspect -f "{{.State.FinishedAt}}" mariadb-test5
Oder aber wir optimieren die Ausgabetabelle eines Docker-Befehls über
formatierte / tabellarische Ausgaben mit Schalter --format:
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Labels}}"
Besondere Erwähnung neben dem Format table sollte hier das Format json erfahren, was uns wieder zurück zum Tool jq bringt!