Docker verwenden

Der schnellste Weg, um mit der VCDB zu starten, ist die Verwendung von Docker image docker. Auf dieser Seite finden sich Kurzanleitung für die Nutzung der VCDB und vcdb-tool mit Docker. Anhand der Beispiele kann in wenigen Minuten eine Datenbank erstellt, CityGML-Daten importiert und wieder exportiert werden.

Ein ausführlicheres Beispiel für die Verwendung der VCDB und vcdb-tool unter Docker ist hier zu finden.

TL;DR

  • VC Database: Einen VCDB Docker-Container mit SRID=25832 erstellen.

  • Linux

  • Windows CMD

docker run -d -p 5432:5432 --name vcdb \
  -e POSTGRES_PASSWORD=changeMe \
  -e SRID=25832 \
vcdb-pg[:TAG]
docker run -d -p 5432:5432 --name vcdb ^
  -e POSTGRES_PASSWORD=changeMe ^
  -e SRID=25832 ^
vcdb-pg[:TAG]
  • vcdb-tool: Mit dem oben angegebenen Container verbinden.

  • Linux

  • Windows CMD

docker run -i -t --rm --name vcdb-tool \
  --network host \
  -v /my/data/:/data \
  -e CITYDB_HOST=localhost \
  -e CITYDB_PORT=5432 \
  -e CITYDB_NAME=postgres \
  -e CITYDB_USERNAME=postgres \
  -e CITYDB_PASSWORD=changeMe \
vcdb-tool[:TAG] [help|import|export|delete|index]
docker run -i -t --rm --name vcdb-tool ^
  --network host ^
  -v /my/data/:/data ^
  -e CITYDB_HOST=localhost ^
  -e CITYDB_PORT=5432 ^
  -e CITYDB_NAME=postgres ^
  -e CITYDB_USERNAME=postgres ^
  -e CITYDB_PASSWORD=changeMe ^
vcdb-tool[:TAG] [help|import|export|delete|index

Was ist Docker?

Docker image docker ist eine weit verbreitete Virtualisierungstechnologie, die es ermöglicht, eine Anwendung mit allen erforderlichen Ressourcen in eine standardisierte Einheit zu verpacken—den Docker Container. Auf diese Weise gekapselte Software kann auf Linux, Windows, macOS und den meisten Cloud-Services ohne weitere Änderungen oder Setup-Prozesse ausgeführt werden. Docker-Container sind leichtgewichtig im Vergleich zu traditionellen Virtualisierungsumgebungen, die ein ganzes Betriebssystem emulieren, da sie nur die Anwendung selbst und die erforderlichen Tools, Programmbibliotheken und Dateien enthalten.

Mit Docker ist es möglich, eine VCDB-Instanz in wenigen Sekunden zum Laufen zu bringen, ohne einen Datenbankserver oder das VCDB-Datenbankschema einrichten zu müssen.

Docker installieren

Um die VCDB Docker-Images auszuführen, muss zunächst die Docker Engine installiert werden. Installationsanweisungen für Linux sind hier verfügbar. Für Windows-Benutzer wird der Download und die Installation von Docker Desktop empfohlen.

Docker-Images herunterladen

Docker-Images für die VCDB und vcdb-tool sind auf unserer Software-Downloadseite verfügbar. Jedes Image ist mit der entsprechenden Release-Version der Software versehen. Die Download-Pakete enthalten weitere Anweisungen zum Laden der vorgefertigten Images mit der Docker Engine. Falls Sie Docker-Images selbst erstellen wollen, finden Sie entsprechende Anleitungen in den Docker-Kapiteln für die VCDB und das vcdb-tool.

Schnellstart-Beispiele

Die folgenden Abschnitte bieten Code-Snippets für alle VCDB Docker-Images, um in wenigen Sekunden zu starten.

VCDB Docker

Um einen PostgreSQL/PostGIS VCDB Container aufzusetzen, müssen nur ein Datenbank-Passwort (POSTGRES_PASSWORD) und die Spatial Reference ID (SRID) des zu verwendenden Koordinatenreferenzsystems für die VCDB-Instanz übergeben werden. Verwenden Sie die -p Option des docker run Befehls, um einen Port zu definieren, über den das Host-System auf die Datenbank zugreifen kann.

  • Linux

  • Windows CMD

docker run -d -p 5432:5432 --name vcdb \
  -e POSTGRES_PASSWORD=changeMe \
  -e SRID=25832 \
vcdb-pg[:TAG]
docker run -d -p 5432:5432 --name vcdb ^
  -e POSTGRES_PASSWORD=changeMe ^
  -e SRID=25832 ^
vcdb-pg[:TAG]
  • Ersetzen Sie TAG im obigen Befehl mit der Release-Version des Images, z.B. vcdb-pg:5.0.0.

  • Eine ausführliche Dokumentation für das VCDB Docker-Image finden Sie hier.

Die folgende Übersicht zeigt die Konfiguration des VCDB-Containers, der mit dem obigen Befehl gestartet wurde.

Eigenschaft Wert

Name des Containers

vcdb

VCDB Hostname

localhost or 127.0.0.1

VCDB Port

5432

VCDB Datenbankname

postgres

VCDB Benutzername

postgres

VCDB Passwort

changeMe

VCDB SRID

25832

VCDB CRS Name

urn:ogc:def:crs:EPSG::25832

vcdb-tool Docker

Das vcdb-tool Docker-Image macht die Befehle des vcdb-tool Kommandozeilen-Tools verfügbar. Die unten aufgelisteten Umgebungsvariablen ermöglichen es, beim Starten des Containers eine VCDB v5 Verbindung zu spezifizieren. Um Daten für den Import oder Export mit dem Container auszutauschen, wird ein beliebiges Verzeichnis des Host-Systems als /data Verzeichnis innerhalb des Containers gemounted.

  • Linux

  • Windows CMD

docker run --rm --name vcdb-tool -i -t \
  --network host \
  -e CITYDB_HOST=localhost \
  -e CITYDB_NAME=postgres \
  -e CITYDB_USERNAME=postgres \
  -e CITYDB_PASSWORD=changeMe \
  -v /my/data/:/data \
vcdb-tool[:TAG] COMMAND (1)
1 Die verfügbaren Befehle von vcdb-tool sind hier dokumentiert.
docker run --rm --name vcdb-tool -i -t ^
  --network host ^
  -e CITYDB_HOST=localhost ^
  -e CITYDB_NAME=postgres ^
  -e CITYDB_USERNAME=postgres ^
  -e CITYDB_PASSWORD=changeMe ^
  -v "C:\mydata:/data" ^
vcdb-tool[:TAG] COMMAND (1)
1 Die verfügbaren Befehle von vcdb-tool sind hier dokumentiert.
  • Ersetzen Sie TAG im obigen Befehl mit der Release-Version des Images, z.B. vcdb-tool:1.0.0.

  • Eine ausführliche Dokumentation für das vcdb-tool Docker-Image finden Sie hier.

Die Hilfe und CLI-Dokumentation anzeigen

Mit Hilfe des help Befehls kann die CLI-Dokumentation (Command-Line Interface) sowie alle verfügbaren Befehle des vcdb-tool auf der Konsole ausgegeben werden:

docker run -i -t --rm [...] vcdb-tool[:TAG] help

Mit help COMMAND wird die Hilfe für einen speziellen Befehl angezeigt:

docker run -i -t --rm [...] vcdb-tool[:TAG] help import
docker run -i -t --rm [...] vcdb-tool[:TAG] help export
docker run -i -t --rm [...] vcdb-tool[:TAG] help delete
# ...

Wenn der Befehl weitere Unterbefehle hat, verwenden Sie help SUBCOMMAND, um eine Beschreibung des Unterbefehls zu erhalten:

docker run -i -t --rm [...] vcdb-tool[:TAG] import help citygml

CityGML-Daten importieren

Führen Sie den import Befehl aus, um einen CityGML-Datensatz im Verzeichnis /local/data/dir/data.gml (Linux) bzw. C:\local\data\dir\data.gml (Windows) zu importieren.

  • Linux

  • Windows CMD

docker run -i -t --rm -u $(id -u):$(id -g) \
  --network host \
  -v /local/data/dir:/data/ \
  -e CITYDB_HOST=localhost \
  -e CITYDB_NAME=postgres \
  -e CITYDB_USERNAME=postgres \
  -e CITYDB_PASSWORD=changeMe \
vcdb-tool[:TAG] import citygml "/data/data.gml"
docker run -i -t --rm ^
  --network host ^
  -v "C:\local\data\dir:/data/" ^
  -e CITYDB_HOST=localhost ^
  -e CITYDB_NAME=postgres ^
  -e CITYDB_USERNAME=postgres ^
  -e CITYDB_PASSWORD=changeMe ^
vcdb-tool[:TAG] import citygml "/data/data.gml"

CityGML-Daten exportieren

Über den export Befehl exportieren Sie die Daten zurück in den CityGML-Datensatz /local/data/dir/export.gml (Linux) bzw. C:\local\data\dir\export.gml (Windows).

  • Linux

  • Windows CMD

docker run -i -t --rm -u $(id -u):$(id -g) \
  --network host \
  -v /local/data/dir:/data/ \
  -e CITYDB_HOST=localhost \
  -e CITYDB_NAME=postgres \
  -e CITYDB_USERNAME=postgres \
  -e CITYDB_PASSWORD=changeMe \
vcdb-tool[:TAG] export citygml -o "/data/export.gml"
docker run -i -t --rm ^
  --network host ^
  -v "C:\local\data\dir:/data/" ^
  -e CITYDB_HOST=localhost ^
  -e CITYDB_NAME=postgres ^
  -e CITYDB_USERNAME=postgres ^
  -e CITYDB_PASSWORD=changeMe ^
vcdb-tool[:TAG] export citygml -o "/data/export.gml"
Ein sehr viel ausführlicheres Beispiel zum Importieren und Exportieren von Daten mit den Docker-Images für die VCDB und das vcdb-tool Docker finden Sie hier.