GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Docker

PostgreSQL in Docker ausführen, eine schnelle und praktische Anleitung

Diese Anleitung führt Sie durch die Ausführung von PostgreSQL mit persistentem Speicher in einem Docker-Container und die Verbindung damit.

PostgreSQL ist ein quelloffenes, objektrelationales Datenbankmanagementsystem. Sie existiert seit über 30 Jahren und bewirbt sich selbst als „die fortschrittlichste relationale Open-Source-Datenbank der Welt.“

Docker ist zu einem Standard in der IT-Branche für das einfache Packen, Bereitstellen und Ausführen verteilter Anwendungen geworden. Mit Docker-Containern können Sie schnell neue Anwendungen erstellen, ohne Ihr System mit Abhängigkeiten zu überladen.

Sie können Docker verwenden, um eine PostgreSQL-Datenbank in einem Container als Remote-Server auszuführen. Docker-Container basieren auf offenen Standards, sodass Container auf allen wichtigen Linux-Distributionen, macOS und Microsoft Windows ausgeführt werden können.

PostgreSQL in Docker ausführen

Wir werden hier das PostgreSQL-Image herunterladen, prüfen, ob das Image bereit ist, das Image mit bestimmten Parametern ausführen und schließlich eine Verbindung zur laufenden PostgreSQL-Instanz herstellen.

1. Pullen Sie ein PostgreSQL-Server-Docker-Image

Zuerst müssen wir ein vorhandenes offizielles PostgreSQL-Image vom Docker Hub abrufen. Bilder sind für die PostgreSQL-Versionen 9, 10, 11, 12 und 13 verfügbar. Ändern Sie den latest   Markieren Sie die erforderliche Version, wenn Sie eine bestimmte Version benötigen.

Ziehen wir nun das Bild:

sudo docker pull postgres:latest

Mit dem obigen Befehl wird die neueste verfügbare Version von PostgreSQL aus dem Docker Hub-Repository abgerufen.

2. Ausführen eines Containers vom PostgreSQL-Server-Docker-Image

Vor der Bereitstellung müssen Sie ein Docker-Volume oder einen Bind-Mount einrichten, um Ihre Datenbank beizubehalten. Andernfalls gehen Ihre Daten beim Neustart des Containers verloren. Die Einbindung sollte in /var/lib/postgresql/data erfolgen Verzeichnis innerhalb des Containers.

Wir erstellen ein Docker-Volume für diesen Leitfaden und hängen es an Ihren PostgreSQL-Container an.

Der folgende Befehl erstellt das Volume auf Ihrem lokalen Computer, das Sie später mit dem PostgreSQL-Container verbinden können:

sudo docker volume create postgres-volume

Nachdem Sie nun ein PostgreSQL-Image auf Ihrem Computer und ein Volume zum Speichern der Daten haben, können Sie einen Container bereitstellen mit:

sudo docker run -d --name=postgres13 -p 5432:5432 -v postgres-volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=[your_password] postgres

Der Docker-Run-Befehl erstellt eine laufende PostgreSQL-Datenbank in einem Docker-Container.

Lassen Sie uns diese Syntax aufschlüsseln. Zuerst ist hier, was jeder Parameter in diesem Befehl bedeutet:

  • -d führt diesen Container in einem getrennten Modus aus, um ihn im Hintergrund auszuführen.
  • --name weist den Namen postgres13 zu zu Ihrer Containerinstanz.
  • -p bindet den PostgreSQL-Containerport 5432 an denselben Port auf Ihrem Hostcomputer. Sie können sich mit localhost:5432 verbinden mit PostgreSQL-Clients (psql ), die auf Ihrem Host ausgeführt werden.
  • -v Option bindet diesen Datenordner innerhalb des Container-Volumes (/var/lib/postgresql ) auf das lokale Docker-Volume (postgres-volume ), die Sie im vorherigen Schritt erstellt haben.
  • -e setzt eine Umgebungsvariable. In diesem Fall das PostgreSQL-Root-Passwort.
  • postgres ist der Name des Images, das wir verwenden, um den Container zu erstellen.

Sie können überprüfen, ob der Container läuft, indem Sie die laufenden Container auflisten:

sudo docker ps
CONTAINER ID   IMAGE   COMMAND   CREATED   STATUS   PORTS   NAMES
6cb3293fe725   postgres   "docker-entrypoint.s…"   19 minutes ago   Up 19 minutes   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp   postgres13

Herzliche Glückwünsche! Ihre neue PostgreSQL-Instanz läuft jetzt auf Docker.

Außerdem können Sie die Protokolldatei des laufenden PostgreSQL-Containers mit dem folgenden Befehl überprüfen:

sudo docker logs postgres13

3. Verbinden Sie sich mit dem PostgreSQL-Server

Sie können eine interaktive PostgreSQL-Shell erhalten, indem Sie sie an den Container anhängen und psql ausführen Befehl. Dies stellt die vollständige PostgreSQL-Befehlszeilenschnittstelle bereit, um alle vertrauten Befehle und Flags zu verwenden.

sudo docker exec -it postgres13 psql -U postgres

Sie können sich auch mit psql mit der PostgreSQL-Docker-Instanz verbinden PostgreSQL-Client, wenn Sie ihn auf Ihrem Host vorinstalliert haben.

psql -h localhost -U postgres

Schlussfolgerung

Einer der wichtigsten Anwendungsfälle für die Verwendung von Docker ist die einfache Erstellung und der Zugriff auf Anwendungen, die in Containern erstellt wurden, ohne sich Gedanken über Abhängigkeiten und Installationen machen zu müssen.

In diesem Tutorial haben wir gelernt, wie man einen PostgreSQL-Server mit Docker anstelle des eigentlichen Hostcomputers einrichtet.

Mit der Microservices-Architektur, bei der sich verschiedene Microservices auf ihre Datenbanken verlassen, ist die Bereitstellung von PostgreSQL-Servern als Docker-Container üblich geworden.

Es wird auch häufig für die lokale Ausführung oder End-to-End-Integrationstests in einer isolierten Umgebung verwendet.

Lassen Sie mich wissen, wenn Sie Fragen oder Vorschläge haben, und ich werde mich gerne bei Ihnen melden.


Docker
  1. So führen Sie Nginx in einem Docker-Container aus:Eine Schritt-für-Schritt-Anleitung

  2. Was ist Docker (und Linux-Container?)

  3. Wann und warum Docker verwendet werden sollte

  4. Vollständiger Anfängerleitfaden für die Docker-Protokollierung

  5. Eine Kurzanleitung zur Verwendung von Docker Compose

Docker-Leitfaden:Bereitstellen von Ghost Blog mit MySQL und Traefik mit Docker

So installieren und verwenden Sie Docker unter Ubuntu 22.04

So bereinigen und löschen Sie Docker-Images

.NET Core und Docker

Erstellen, Ausführen und Testen von .NET Core und ASP.NET Core 2.1 in Docker auf einem Raspberry Pi (ARM32)

.NET und Docker