https://geshan.com.np/blog/2021/12/docker-postgres/ https://belowthemalt.com/2021/06/09/run-postgresql-and-pgadmin-in-docker-for-local-development-using-docker-compose/ https://thibaut-deveraux.medium.com/how-to-install-neo4j-with-docker-compose-36e3ba939af0 https://towardsdatascience.com/how-to-run-postgresql-and-pgadmin-using-docker-3a6a8ae918b5 # Installation Docker Desktop ## Starten eines Containers: > docker run --name basic-postgres --rm -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=4y7sV96vA9wv46VR -e > PGDATA=/var/lib/postgresql/data/pgdata -v /tmp:/var/lib/postgresql/data -p 5432:5432 -it postgres:14.1-alpine Dieser Befehl startet einen Container mit dem Postgres14.1-alpine Image, welches von Dockerhub geladen wird. Der Container läuft unter dem Namen basic-postgres | Syntax | Attribut | Beschreibung | |-------------------|----------|-----------------------------------------------------------------------------------| | basic-postgres | --name | Angabe des Containernamens | | | --rm | Bei Beendigung des Containers wird das erstellte Dateisystem entfernt | | | -e | Verwende Umgebungsvariablen | | POSTGRES_USER | | Umgebungsvariable für den anzulegenden Benutzer: postgres | | POSTGRES_PASSWORD | | Umgebungsvariable für das anzulegende Passwort: 4y7sV96vA9wv46VR | | PGDATA | | Umgebungsvariable für den Ort der Datenbank | | | -v | Einzubindendes Volumen: /tmp:/var/lib/postgresql/data | | | -p | Angabe des Containerports und des öffentlich zugänglichen Ports | | | -it | Interactive: der Container bleibt aktiv, damit mit diesem interagiert werden kann | Mit einem zweiten Terminalfenster kann man auf die Bash des Containers öffnen und auf die Datenbank zugreifen. > docker exec -it basic-postgres /bin/sh Die folgenden Befehle starten die Postgres CLI, Ausgabe aller Datenbanken und beendet die CLI. > Psql –username postgres \ > \l \ > Exit Der Container kann durch Betätigung von STRG + C beendet werden. ## Docker Compose Das oben erklärte Vorgehen zum Starten eines Containers, festlegen der Umgebungsvariablen und zusätzliche verlinken zu einer Anwendung wird nun in einer yml-Datei beschrieben, um die Verwaltung und das Erstellen zu vereinfachen. | | | Beschreibung | |----------|-------------|---------------------------------------------------------------------------------------------------------------------| | Version | | Version von docker-compose | | Services | | Definition der Services, wobei jeder ein eigenen docker-run Befehl ausführt. | | | image | Angabe des zu verwendenden Images | | | restart | Option um Container erneut zu starten, falls dieser gestoppt wird | | | Environment | Umgebungsvariablen: Username und Passwort | | | Ports | Mapping des Containerports zum Port der Hostmaschine | | | Volumes | Angabe eines Volumes zum Persistieren der Containerdaten, damit nach einem Neustart die Daten wieder verfügbar sind | Nun kann der Container mittels Docker-Compose gestartet werden. ```console docker-compose -f /.../docker-compose-postgres.yml up ``` ## pgAdmin pgAdmin ist ein grafisches Administrationswerkzeug für postgreSQL und macht die oben gezeigte Administration komfortabler. Erreichbar ist das Interface über: http://localhost:5050 Als Login werden die Daten aus der docker-compose verwendet: ``` > User: admin@fh-swf.de > Passwort: admin ``` ### Anlegen eines Servers Zuerst muss der Server angelegt werden, dafür einen Rechtsklick auf Server und den Button „Register“ auswählen. \ Im geöffneten Dialog muss die Konfiguration festgelegt werden. | Reiter | Parameter | Wert | |------------|-------------------|-----------------------------------| | General | Name | postgres_docker | | Connection | Host name/address | local_pgdb (siehe docker-compose) | | Connection | Username | postgres (siehe docker-compose) | | Connection | Password | postgres (siehe docker-compose) |