|
|||||
---|---|---|---|---|---|
Tutorial - DockerDocker ist eine schlanke Visualisierungsanwendung mit der Container von anderen Entwicklern ausgeführt werden können. Container können über den "Docker-Hub" geladen und installiert werden. Unter einem Linux System kann man Docker installieren und anschließend kann man einen Container laden und starten. Hier in diesem Tutorial wird gezeigt wie man einen PostgreSQL Server auf einer Discstation über Docker installiert und einrichtet. Es gibt auch andere SQL Server die man so relativ leicht laden und starten kann. Man kann sogar den gleichen SQL Server mehrfach starten, somit können unterschiedliche Programme in getrennte Server ausgeführt werden. Der Vorteil: damit installiert man den SQL Server nicht direkt in das System sondern läuft innerhalb des virtuellen Containers getrennt vom System. Per Netzwerk ist dieser Container dann von außen erreichbar, was bei einem Datenbankserver völlig ausreichend ist. In diesem Beispiel wird die Installation auf einer Synology Discstation durchgeführt.
Vorbereitung Docker installationInstallation von "Docker" aus dem "Paket-Zentrum". Vorbereiten des DateisystemsNun wurde der Container geladen und ist im Prinzip bereits lauffähig. Die Datenbank Dateien selbst möchte man vielleicht direckt auf der Discstation halten und nicht innerhalb vom Container. Daher macht es Sinn diesen einen Pfad in der Discstation an zu legen. Dazu öffnet man die "FileStation", dieser zeigt nun alle Haupt-Ordner. Darin sollte nun ein Ordner "docker" als Hauptordner zu sehen sein. In diesem Ordner wird nun ein neuer Ordner "postgres" angelegt. Der Pfad da hin ist auf der Synology Discstation in der Regel "/volume1/docker/postgres". Bei anderen Linux Systemen kann das durchaus abweichen. Vorbereitung der FirewallDie Firewall muss den Zugriff auf den Port des neu installierten SQL Servers frei geben, in diesem Beispiel ist es Port "5433". Bei der Synology Discstation kann die Firewall unter: "Systemsteuerung" -> "Sicherheit" -> "Firewall" -> "Regeln bearbeiten" parametriert werden. Hier wird eine neue Regel erstellt die den Portzugriff auf 5433 erlaubt. Laden des Containers mit dem Datenbank-Server
Anschließend wird der Container geladen und steht unter "Abbild" zur Verfügung. Dieses Beispiel lädt ca. 160MB. Starten des ContainersIm Docker Fenster unter "Abbild" ist nun das geladene Image "postgres:13.1-alpine" verfügbar. Dieses wird angewählt und mit der Taste "Starten" wird der Container für den Start vorbereitet: Der Container Name ist frei vergebbar, in diesem Beispiel "postgres". In den "Erweiterte Einstellungen" müssen die Konfigurationen vorgenommen werden: "Automatischen Neustart aktivieren" startet den PostgreSQL Server automatisch neu wenn die DiscStation neu startet oder wenn das Image wegen einem Fehler abstürzt. In "Volume" wird der Ordner der Datenbank zur Discstation verknüpft, den man vorhin angelegt hat: "/var/lib/postgresql/data" Die Port-Einstellung muss gesetzt werden. In diesem Beispiel ist der Port "5432" vom Host System bereits belegt, um dennoch den PostgreSQL Container nutzen zu können kann Docker den Port umstellen, in diesem Beispiel wird der Port auf "5433" umgebogen: Bei "Umgebung" werden noch ein paar zusätzliche Einstellungen getätigt wie z.B. das "Postgres" Passwort vergeben:
Mit "+" kann eine neue Zeile hinzu gefügt werden und dann muss der Name der Variable sowie der Wert eingestellt werden. Andere Docker Container haben entsprechend andere Parameter, die man hier einstellen kann. Infos können in der jeweiligen Internetseite des Herstellers des Containers nachgelesen werden. Mit "Übernehmen" werden die Einstellungen gespeichert. Man kommt zurück zum zuvorigen Dialog, mit "Weiter" werden nochmals alle Einstellungen gezeigt, mit "Übernehmen" wird der Container erstellt und gestartet. Docker Container per Kommandozeile anlegenMan kann diese vielen Dialoge sich sparen wenn man den Container per Kommandozeile mit root rechten anlegt, das Verzeichnis "/volume1/docker/postgres" muss dazu schon existieren.
Die Dialoge helfen zu Anfang um einen besseren Durchblick zu bekommen, die Kommandozeile hilft wenn man das mehrmals machen muss, spart Zeit. ContainerIm Abschnitt "Container" werden alle eingerichtete Container gezeigt. Man kann hier mehrere haben die jeweils getrennt voneinander laufen. Somit könnte man den PostgreSQL Server mehrfach angelegt haben, für jede Anwendung einen eigenen Container. Das vereinfacht die Wartung, bzw. sollte ein Update der Datenbank nötig sein kann man dies zu erst mit einem neuen Container testen ohne dass die Datenbank für die Produktion beeinträchtigt wird. Bei Container sieht man zudem die CPU Belastung sowie den RAM Verbrauch. Wenn ein Container (z.B. "postges") ausgewählt ist kann man unter "Details" die Einstellungen sowie der Status überprüfen. Sollte z.B. ein Container nicht starten so steht unter "Protokoll" meist eine sinnvolle Fehlermeldung, z.B. dass noch eine Variable deklariert werden muss. Der PostgreSQL Container ist recht genügsam, kommt mit sehr wenig CPU / RAM Verbrauch aus. Hingegen ein "microsoft/mssql-server-linux" benötigt für das nichts tun schon über 1% CPU und knapp 500MB RAM. Es gibt tausende weitere Docker Container die installiert werden können. Die Detail-Ansicht:Benutzer in der PostgreSQL DatenbankNach der Installation vom Postgres ist nur 1 Benutzer angelegt, der Systembenutzer "postgres" mit dem in der Variable "POSTGRES_PASSWORD" vergebenen Passwort. Wenn man es einfach haben möchte, so kann man dieses direkt mit EleLa benutzen. Wenn nicht muss man "pgAdmin" installieren und kann darüber einen neuen Benutzer anlegen. Die Konfiguration in EleLa um auf die Datenbank zu gelangenEingestellt wird die TCP/IP Adresse von der Discstation (also der Server
auf dem Docker läuft), der Port 5433 (den leitet Docker um in den
Container), den Name der Datenbank, sowie User und Passwort (aus der Variable
"POSTGRES_PASSWORD"). Administrieren der PostgreSQL Datenbank mit pgAdmin 4pgAdmin wird von EleLa selbst nicht benötigt da EleLa alle Werkzeuge bietet die Datenbank anlegen zu können. Wenn man zur Sicherheit einen anderen Benutzername haben möchte um auf die PostgreSQL Datenbank zuzugreifen so muss man dieses Tool dennoch nutzen, da EleLa die Benutzerverwaltung der Datenbank nicht administrieren kann. Zu erst muss man pgAdmin installieren. Das geht mit 2 Varianten:
Ich hatte versucht einen Docker Container mit pgAdmin zu installieren, leider wollte er bei meiner Discstation nicht starten. Hingegen die Installation auf einem Desktop PC unter Windows hat gut funktioniert. Server in pgAdmin registrieren: Nach dem Start von pgAdmin erscheint der Webbrowser mit pgAdmin, darin wird die Konfiguration vorgenommen. Als erstes muss der Server in das pgAdmin verbunden werden: "Servers" -> rechtsklick -> Menü "Create" -> "Server..." Im Dialog: General: Connection: Taste "Save" Neuen Benutzer mit pgAdmin anlegen: Nun erscheint im linken Baum der neu hinzugefügte Server "postgres1". Wenn man diesen öffnet kann ein neuer Benutzer angelegt werden: "Login/Group Roles" -> rechtsklick -> "Create" -> "Login/Group Roles..." General: Definition: Privileges: Taste "Save" Somit hat man nun einen neuen Benutzer "elela" mit Passwort, der als Benutzer in EleLa verwendet werden kann. |
|||||
|