Aufgabe 09 - Installation einer lokalen PostgreSQL-Datenbank
Aufgabe 09 - Installation einer lokalen PostgreSQL-Datenbank mit Docker
Abschnitt betitelt „Aufgabe 09 - Installation einer lokalen PostgreSQL-Datenbank mit Docker“Worum geht es?
Abschnitt betitelt „Worum geht es?“In dieser Übung richten Sie sich Ihre eigene Arbeitsumgebung ein: einen lokalen PostgreSQL-Server in Docker mit persistenten Daten. Diese Datenbank verwenden Sie in allen folgenden SQL-Übungen (siehe Kapitel 5 - SQL-Grundlagen).
In dieser Übung üben Sie:
- Verstehen: die Rolle eines Datenbankservers gegenüber Datenbank-Clients (
psql, GUI-Tools) erfassen. - Auswählen: einen geeigneten Unterbau (HTL-Live-Image oder eigenes Betriebssystem) wählen.
- Konfigurieren: eine Docker-Umgebung mit Image, Container, Port-Mapping und Volumes einrichten.
- Anwenden & Testen: den laufenden Server über
psqloder ein GUI-Tool erreichen und prüfen. - Berücksichtigen: Sicherheitsaspekte (Passwörter, Standard-User, offene Ports) beachten.
- Dokumentieren: die durchgeführten Schritte nachvollziehbar festhalten.
Ziel dieser Aufgabe ist, dass Sie am Ende über einen lauffähigen PostgreSQL-Server auf Ihrem eigenen Laptop verfügen, den Sie in späteren Übungen und Projekten verwenden können.
Die HTL Villach stellt ein vorkonfiguriertes HTL-Live-Image (als virtuelle Maschine) zur Verfügung, das Sie verwenden können, aber nicht müssen:
-
Die Beschreibung des HTL-Live-Images finden Sie unter:
https://insy.htl-villach.at/de/exercises/basic/exercise-a---installation-des-htl-live-image/
Dieses Image kann als Basis für Ihre Entwicklungsumgebung dienen. -
Die grundsätzliche Vorgehensweise zur Installation von PostgreSQL oder MariaDB in einer Docker-Umgebung ist hier beschrieben:
https://insy.htl-villach.at/de/exercises/basic/exercise-b---installation-von-postgresql-im-htl-live-image/Wichtig: In dieser Aufgabe sollen Sie PostgreSQL installieren, nicht MariaDB.
Sie entscheiden selbst, ob Sie
- das HTL-Live-Image als VM verwenden und darin mit Docker arbeiten, oder
- direkt auf Ihrem Laptop-Betriebssystem (Windows, macOS, Linux) Docker installieren und verwenden.
Das Endergebnis (laufender PostgreSQL-Server) soll in beiden Fällen gleich sein.
Arbeitsaufträge
Abschnitt betitelt „Arbeitsaufträge“-
Basis-System wählen und vorbereiten
- Entscheiden Sie sich für eine der beiden Varianten:
- Variante A: Verwendung des HTL-Live-Images (VM) gemäß
https://insy.htl-villach.at/de/exercises/basic/exercise-a---installation-des-htl-live-image/ - Variante B: Verwendung Ihres nativen Betriebssystems (Windows, macOS, Linux) auf dem Laptop.
- Variante A: Verwendung des HTL-Live-Images (VM) gemäß
- Stellen Sie sicher, dass Sie auf dem gewählten System Administratorrechte bzw. ausreichende Rechte zum Installieren von Software haben.
- Entscheiden Sie sich für eine der beiden Varianten:
-
Docker-Umgebung bereitstellen
- Falls Sie das HTL-Live-Image verwenden:
- Führen Sie die notwendigen Schritte aus Übung B durch, um Docker im Live-Image zu verwenden (so weit, wie für PostgreSQL notwendig ist).
- Falls Sie Ihr eigenes Betriebssystem verwenden:
- Installieren Sie eine passende Docker-Umgebung (z. B. Docker Desktop, Docker Engine, Podman mit Docker-Kompatibilität o. Ä.).
- Überprüfen Sie die Installation mit einem Testbefehl wie z. B.:
docker versiondocker ps
- Falls Sie das HTL-Live-Image verwenden:
-
PostgreSQL-Container planen
- Legen Sie fest:
- Unter welchem Port PostgreSQL von außen erreichbar sein soll (z. B. Host-Port
5432oder ein alternativer Port). - Wie der Datenordner der Datenbank als Volume eingebunden werden soll (damit Daten auch nach einem Container-Neustart erhalten bleiben).
- Welche Benutzernamen, Passwörter und Datenbanknamen Sie verwenden (z. B.
postgres-User, eigenes Datenbank-Schema für Tests).
- Unter welchem Port PostgreSQL von außen erreichbar sein soll (z. B. Host-Port
- Dokumentieren Sie diese Entscheidungen stichwortartig.
- Legen Sie fest:
-
PostgreSQL mit Docker starten
- Erstellen Sie eine einfache
docker run-Anweisung oder bevorzugt einedocker-compose.yml, mit der- ein PostgreSQL-Container aus einem offiziellen Image (z. B.
postgres:latest) gestartet wird, - der Port des Containers auf einen Host-Port gemappt wird (z. B.
5432:5432), - ein Volume für die Daten eingebunden wird,
- die notwendigen Umgebungsvariablen (z. B.
POSTGRES_PASSWORD, optionalPOSTGRES_USER,POSTGRES_DB) gesetzt werden.
- ein PostgreSQL-Container aus einem offiziellen Image (z. B.
- Starten Sie den Container:
- z. B. mit
docker compose up -doder einem entsprechenden Befehl.
- z. B. mit
- Stellen Sie sicher, dass der Container fehlerfrei läuft:
docker pszeigt den Container als “healthy” oder zumindest “up” an,- im Log (
docker logs <container-name>) sind keine kritischen Fehlermeldungen zu sehen.
- Erstellen Sie eine einfache
-
Verbindung zur Datenbank testen
- Installieren bzw. verwenden Sie einen geeigneten PostgreSQL-Client:
- Kommandozeile:
psql, oder - optional ein GUI-Tool (z. B. DBeaver, pgAdmin, TablePlus, …).
- Kommandozeile:
- Stellen Sie eine Verbindung zur Datenbank her:
- Host:
localhost(oder die IP der VM, falls Sie das HTL-Live-Image nutzen), - Port: der von Ihnen konfigurierte Port,
- Benutzername und Passwort aus Schritt 3,
- Datenbankname (z. B.
postgresoder Ihre eigene Test-Datenbank).
- Host:
- Führen Sie mindestens folgende SQL-Befehle aus und notieren Sie sich das Ergebnis:
CREATE DATABASE testdb;\c testdbSELECT version();CREATE TABLE test (id SERIAL PRIMARY KEY, name TEXT NOT NULL);INSERT INTO test (name) VALUES ('Erster Eintrag');SELECT * FROM test;DROP DATABASE testdb;
- Installieren bzw. verwenden Sie einen geeigneten PostgreSQL-Client:
-
Dokumentation Ihrer Installation
- Halten Sie die wichtigsten Schritte in einer kurzen Dokumentation fest:
- Welche Variante (HTL-Live-Image oder natives OS) haben Sie verwendet?
- Welche Docker-Befehle bzw. welche
docker-compose.ymlhaben Sie genutzt? - Welche Zugangsdaten (Benutzer, Datenbankname, Port - ohne das Passwort im Klartext) haben Sie konfiguriert?
- Welche Probleme sind aufgetreten und wie haben Sie diese gelöst?
- Erstellen Sie Screenshots, die zeigen:
- den laufenden PostgreSQL-Container in
docker ps, - eine erfolgreiche Verbindung mit
psqloder dem GUI-Tool, - das Ergebnis der Abfrage
SELECT * FROM test;.
- den laufenden PostgreSQL-Container in
- Halten Sie die wichtigsten Schritte in einer kurzen Dokumentation fest:
- Dokumentation (Word oder PDF) mit:
- einer kurzen Beschreibung der gewählten Umgebung (HTL-Live-Image oder natives Betriebssystem),
- den wichtigsten Installationsschritten in Stichworten,
- einer Übersicht über die gewählten Einstellungen (Port, Benutzer, Datenbankname),
- einer kurzen Beschreibung Ihrer Probleme, die aufgetreten sind, und Ihrer Lösungen.
- Screenshots:
- ein Screenshot von
docker ps, der den laufenden PostgreSQL-Container zeigt, - ein Screenshot einer erfolgreichen Verbindung zur Datenbank (
psqloder GUI), - ein Screenshot der Ergebnisanzeige der Tabelle
test(mit dem eingefügten Datensatz).
- ein Screenshot von
Wissens-Check
Abschnitt betitelt „Wissens-Check“- Frage 1: Worin unterscheidet sich ein Datenbankserver (PostgreSQL) von einem Datenbank-Client (z. B.
psql)? - Frage 2: Wozu dient ein Volume beim Betrieb eines Datenbank-Containers, und was passiert ohne Volume nach einem Neustart?
- Frage 3: Was bedeutet das Port-Mapping
5432:5432in einemdocker run- bzw.docker compose-Befehl?
HTL Villach, Schuljahr 2025-2026,
https://www.htl-villach.at