Einführung
PostgreSQL , auch als Postgres, bezeichnet ist ein quelloffenes, objektrelationales Datenbankmanagementsystem. Entwickler entscheiden sich oft für diese relationale Datenbank, da sie kostenlos, stabil und flexibel ist. Tatsächlich sind PostgreSQL und MySQL die beliebtesten Verwaltungssysteme für relationale Datenbanken.
Heute ist Postgres eines der am häufigsten verwendeten Docker-Images, die in Containern ausgeführt werden. Die Beliebtheit containerisierter Datenbanken wird der Einfachheit zugeschrieben, mit der sie bereitgestellt werden können. Anstatt eine zentrale Datenbank für viele Anwendungen zu haben, können Entwickler außerdem einen PostgreSQL-Container für jede Anwendung zuweisen.
In diesem Tutorial erfahren Sie, wie Sie PostgreSQL auf einem Docker-Container ausführen.
Voraussetzungen
- Zugriff auf ein Befehlszeilen-/Terminalfenster
- Ein Benutzerkonto mit sudo Privilegien
- Eine vorhandene Docker-Installation
PostgreSQL auf Docker-Containern ausführen
Die Bereitstellung eines Postgres-Containers ist einfach. Sie finden das Postgres-Image zum Erstellen dieser Datenbankcontainer im offiziellen Repository von Docker.
Diese Anleitung zeigt Ihnen zwei Möglichkeiten, dies zu tun.
Die erste Option verwendet Docker Compose , ein Tool zum Verwalten von Docker-Anwendungen mit mehreren Containern. Sie können Docker Compose verwenden, um Postgres als Dienst zu konfigurieren, der innerhalb eines Containers ausgeführt wird. In diesem Fall erstellen Sie eine yaml Datei mit allen Spezifikationen.
Alternativ können Sie a verwenden einzelner Docker-Befehl mit allen notwendigen Informationen zum Bereitstellen eines neuen PostgreSQL-Containers.
Option 1:Führen Sie Postgres mit Docker Compose aus
Um einen Postgres-Container mit Docker Compose bereitzustellen, sollten Sie dieses Docker-Tool auf Ihrem System eingerichtet haben.
Wenn Sie ein Linux-Benutzer sind und Hilfe bei der Einrichtung benötigen, lesen Sie eine unserer Anleitungen zur Installation von Docker Compose auf Ubuntu oder zur Installation von Docker Compose auf CentOS.
1. Um eine einfache und saubere Installation zu gewährleisten, möchten wir zunächst ein Arbeitsverzeichnis namens postgres erstellen und wechseln Sie in dieses Verzeichnis:
mkdir postgres
cd postgres/
2. Verwenden Sie als Nächstes Docker Compose, um das Postgres-Image herunterzuladen und den Dienst zum Laufen zu bringen. Erstellen Sie dazu eine neue docker-compose.yml Datei mit einem Editor Ihrer Wahl (in diesem Beispiel haben wir nano verwendet):
nano docker-compose.yml
3. Fügen Sie den folgenden Inhalt zu docker-compose hinzu Datei:
version: ‘3’
service:
postgres:
image: ‘postgres: latest’
ports:
- “5432:5432”
Die Yaml-Konfigurationsdatei gibt an, dass es ein postgres
gibt Dienst, der auf dem latest postgres image
basiert . Sie können sich für die neueste Postgres-Version entscheiden oder die Versionsnummer angeben, die Sie verwenden möchten.
Schließlich müssen Sie die Ports definieren, auf denen der Container kommuniziert. 5432
ist die Standardportnummer für PostgreSQL.
4. Speichern und beenden Sie die Datei.
5. Nachdem Sie nun die yaml-Konfigurationsdatei haben, können Sie den Postgres-Dienst starten und den Container ausführen. Verwenden Sie docker-compose up
Befehl mit dem -d
Option, um es in den Trennmodus zu versetzen (damit Sie weiterhin Befehle von der aktuellen Shell ausführen können):
docker-compose up -d
6. Sie können die Protokolle mit dem Befehl überprüfen:
docker-compose logs -f
Um zur Shell zurückzukehren, drücken Sie STRG+C .
Option 2:Führen Sie Postgres mit einem einzigen Docker-Befehl aus
Eine andere Möglichkeit, PostgreSQL in einem Container bereitzustellen, besteht darin, einen einzelnen Docker-Befehl auszuführen.
Sie können einen Postgres-Container herunterladen und ausführen, indem Sie alle erforderlichen Informationen in einem Befehl angeben.
docker run --name [container_name] -e POSTGRES_PASSWORD=[your_password] -d postgres
Der Befehl weist Docker an, einen neuen Container unter einem bestimmten Containernamen auszuführen, definiert das Postgres-Passwort und lädt die neueste Postgres-Version herunter.
Bestätigen Sie, dass Ihr PostgreSQL-Container jetzt aktiv ist, indem Sie Docker auffordern, alle laufenden Container aufzulisten mit:
docker ps
In diesem Leitfaden haben wir einen Container mit dem Namen example erstellt und wir können es schnell unter anderen laufenden Containern finden.
Beginnend mit Postgres-Containern
Mit Postgres im Docker-Container verbinden
Um einen Postgres-Container einzugeben, müssen Sie ihn mit dem Containernamen ausführen und psql
aktivieren , die Befehlszeilenschnittstelle für Postgres.
docker exec -it [container_name] psql -U [postgres_user]
Im folgenden Beispiel haben wir eine Verbindung zum example
hergestellt Container als postgres
Benutzer.
Datenbank erstellen
Sobald wir uns im Docker Postgres-Container befinden, können wir eine Datenbank erstellen mit:
create database [db_name];
Verbinden Sie sich mit der Datenbank als Postgres-Benutzertyp:
\c [db_name]
Wenn die Datenbank eingerichtet ist, besteht der nächste Schritt darin, ein Schema zu erstellen, das Ihnen hilft, eine logische Darstellung der Datenbankstruktur zu erhalten:
create schema [db_schema_name]
Hier können Sie eine Tabelle erstellen und Daten in die Tabelle einfügen.
create table [table_name] ([field_names] [values])