Richten Sie einen PostgreSQL -Server und Pgadmin mit Docker ein

Richten Sie einen PostgreSQL -Server und Pgadmin mit Docker ein
In diesem Artikel werde ich Ihnen zeigen, wie Sie Docker Compose verwenden, um einen PostgreSQL-Container zu erstellen und mithilfe von PGADMIN 4, der webbasierten PostgreSQL-Administrator-Schnittstelle, darauf zugreifen zu können. Ich werde Ihnen auch zeigen, wie Sie auf den PostgreSQL -Datenbankserver zugreifen. Also lasst uns anfangen.

Anforderungen:

Um diesem Artikel zu folgen, müssen Sie Docker auf Ihrem Computer installieren lassen. LinuxHint verfügt über viele Artikel. Überprüfen Sie also LinuxHint unbedingt.Com für den Fall, dass Sie Probleme haben, Docker zu installieren.

Installieren von Docker Compose:

Sie können Docker Compose Binärdatei sehr einfach mit dem folgenden Befehl herunterladen:

$ sudo curl -l "https: // github.com/docker/komponieren/veröffentlichen/download/1.24.1/
Docker-Compose-$ (uname -s)-$ (uname -m) "-O/usr/local/bin/docker-compose

NOTIZ: Locken Kann nicht auf Ihrer Linux -Verteilung installiert werden. Wenn dies der Fall ist, können Sie Curl mit dem folgenden Befehl installieren:

Ubuntu/Debian/Linux Mint:

$ sudo apt installieren curl -y

CentOS/Rhel/Fedora:

$ sudo dnf installieren curl -y

Einmal Docker-Compose Binärdatei wird heruntergeladen, führen Sie den folgenden Befehl aus:

$ sudo chmod +x/usr/local/bin/docker-compose

Überprüfen Sie nun, ob Docker-Compose Der Befehl funktioniert wie folgt:

$ docker-compose Version

Es sollte die Versionsinformationen wie im unten gezeigten Screenshot drucken.

Einrichten von Docker Compose für das Projekt:

Erstellen Sie nun ein Projektverzeichnis (sagen wir, sagen wir ~/docker/pgdev) folgendermaßen:

$ mkdir -p ~/docker/pgdev

Navigieren Sie nun zum Projektverzeichnis ~/docker/pgdev folgendermaßen:

$ cd ~/docker/pgdev

Erstellen Sie jetzt eine Docker-Compose.Yaml Datei im Projektverzeichnis ~/docker/pgdev und geben Sie die folgenden Zeilen in der Docker-Compose.Yaml Datei.

Version: "3.7 "
Dienstleistungen:
DB:
Bild: Postgres: 12.2
Neustart: Immer
Umfeld:
Postgres_db: postgres
Postgres_user: admin
Postgres_password: Geheimnis
Pgdata:/var/lib/postgresql/data
Bände:
- DB-DATA:/var/lib/postgreSQL/Daten
Häfen:
- "5432: 5432"
Pgadmin:
Bild: DPAGE/PGADMIN4: 4.18
Neustart: Immer
Umfeld:
Pgadmin_default_email: [email protected]
Pgadmin_default_password: Geheimnis
Pgadmin_listen_port: 80
Häfen:
- "8080: 80"
Bände:
- pgadmin-data:/var/lib/pgadmin
Links:
- "DB: PGSQL-Server"
Bände:
DB-Daten:
Pgadmin-Daten:

Der Docker-Compose.Yaml Die Datei sollte wie folgt aussehen.

Hier habe ich 2 Dienste erstellt db Und Pgadmin.

db Der Service wird die ausführen Postgres: 12.2 Bild (von DockerHub) in einem Docker -Container.

Pgadmin Der Service wird die ausführen DPAGE/PGADMIN4: 4.18 Bild (aus Dockerhub) in einem anderen Docker -Container.

In db Service, der Postgres_db, Postgres_user, Postgres_password Umgebungsvariablen werden verwendet, um den Standarddatenbanknamen, den Administrator Benutzernamen und den Administrator -Benutzerkennwort für den PostgreSQL -Server festzulegen. Der Pgdata Umgebungsvariable wird verwendet, um den PostgreSQL -Server so zu konfigurieren, dass die Daten auf Daten gespeichert werden /var/lib/postgresql/Daten Verzeichnis des Containers.

In Pgadmin Service, der Pgadmin_default_email, Pgadmin_default_password Umgebungsvariablen werden verwendet, um die Anmelde -E -Mail und das Kennwort der PGADMIN -Weboberfläche festzulegen. Der Pgadmin_listen_port wird verwendet, um den Pgadmin -Port 80 in den Container einzustellen.

Im DB -Dienst alle Inhalte der /var/lib/postgresql/Daten Verzeichnis wird dauerhaft in der gerettet DB-Daten Volumen.

Im Pgadmin Service, der gesamte Inhalt der /var/lib/pgadmin Verzeichnis wird dauerhaft in der gerettet Pgadmin-Daten Volumen.

Im db Service, der Containerport 5432 (rechts) wird dem Docker -Host -Port zugeordnet 5432 (links).

Im Pgadmin Service, der Containerport 80 (rechts) wird dem Docker -Host -Port zugeordnet 8080 (links).

Im Pgadmin Service, ein Hostname -Alias PGSQL-Server zum db Container wird erstellt. Sie können also auf den PostgreSQL -Server zugreifen PGSQL-Server als Hostname (keine IP -Adresse erforderlich).

Starten Sie Postgresql Server und Pgadmin:

Nun, um die zu starten db Und Pgadmin Dienste, den folgenden Befehl ausführen:

$ docker -compose up -d

Die Dienste sollten im Hintergrund beginnen.

Wie Sie sehen können, der Port 8080 Und 5432 werden von der geöffnet Docker-Proxy Service.

$ sudo netstat -tlpn

Um zu sehen, wie die Ports zugeordnet werden, führen Sie den folgenden Befehl aus:

$ docker-compose ps

Wie Sie sehen können, für die db Service, der Docker Host -Port 5432 wird dem Container -TCP -Port zugeordnet 5432.

Für die Pgadmin Service, der Docker Host -Port 8080 wird dem Container -TCP -Port zugeordnet 80.

Zugriff auf PGADMIN 4 oder PostgreSQL Server von anderen Computern:

Wenn Sie von einem anderen Computer in Ihrem Netzwerk von einem anderen Computer auf PGADMIN 4 oder PostgreSQL -Datenbankserver zugreifen möchten, müssen Sie die IP -Adresse Ihres Docker -Hosts kennen.

Um die IP -Adresse Ihres Docker -Hosts zu finden, führen Sie den folgenden Befehl aus:

$ ip

In meinem Fall die IP -Adresse meines Docker -Hosts 192.168.20.160. Es wird für Sie anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihre ersetzen.

Zugriff auf Pgadmin aus dem Webbrowser:

Jetzt können Sie problemlos von Ihrem Webbrowser auf Pgadmin 4 zugreifen.

Besuchen Sie http: // localhost: 8080 von Ihrem Docker -Host oder http: // 192.168.20.160: 8080 von jedem Computer in Ihrem Netzwerk. Sie sollten die PGADMIN -Anmeldeseite sehen. Melden Sie sich mit Ihrer E -Mail und Ihrem Passwort an.

Sobald Sie sich angemeldet haben, sollten Sie das Pgadmin -Dashboard sehen.

Klicken Sie nun den PostgreSQL -Server, der als Docker -Container ausgeführt wird, mit der rechten Maustaste auf Server, Und dann gehen Sie zu Erstellen > Server…

Im Allgemein Registerkarte Geben Sie Ihren Server ein Name.

Jetzt geh zum Verbindung Registerkarte und eingeben PGSQL-Server als Hostname/Adresse, 5432 als Hafen, Postgres als Wartungsdatenbank, Administrator als Nutzername, Geheimnis als Passwort und prüfe Passwort speichern? Kontrollkästchen. Klicken Sie dann auf Speichern.

PGADMIN 4 sollte mit Ihrer PostgreSQL -Datenbank verbunden sein. Jetzt können Sie so viel mit Ihrer PostgreSQL -Datenbank arbeiten, wie Sie möchten.

Zugriff auf PostgreSQL von DataGrip:

Sie können auch auf Ihren PostgreSQL -Datenbankserver von DataGrip IDE oder anderen SQL -IDEs zugreifen.

Klicken Sie im Falle von DataGrip auf + von dem Datenbanken Abschnitt und gehen zu Datenquelle > PostgreSQL.

PostgreSQL -Treiber kann nicht installiert werden. In diesem Fall klicken Sie auf Herunterladen.

Der Treiber sollte installiert werden. Geben Sie nun die Docker -Host -IP -Adresse ein 192.168.20.160 (in meinem Fall) als die Gastgeber, 5432 als die Hafen, Administrator als die Benutzer, Geheimnis als die Passwort, Postgres als die Datenbank und klicken Sie auf Testverbindung.

Wenn alles funktioniert.

Klicken Sie nun auf OK.

Jetzt können Sie Ihre PostgreSQL -Datenbanken aus DataGrip verwalten.

Stoppen nach Postgresql und Pgadmin:

Nun, um das zu stoppen db Und Pgadmin Dienste, den folgenden Befehl ausführen:

$ docker-compose down

Der db Und Pgadmin Dienstleistungen sollten gestoppt werden.

Reinigen Sie die Daten nach postgresql und pgadmin:

Wenn Sie alle PostgreSQL -Datenbankdaten und -einstellungen und alle PGADMIN -Einstellungen entfernen möchten, müssen Sie die entfernen DB-Daten Und Pgadmin-Daten Bände.

Sie finden den tatsächlichen Namen der Datenvolumina mit dem folgenden Befehl:

$ Docker Volume LS

Wie Sie sehen können, gibt es 2 Bände für die pgdev Projekt, pgdev_db-data Und PGDEV_PGADMIN-DATA.

Sie können diese Volumes mit dem folgenden Befehl entfernen:

$ Docker Volume RM PGDEV_DB-DATA PGDEV_PGADMIN-DATA

Verweise:

[1] https: // Hub.Docker.com/_/postgres?Tab = Beschreibung
[2] https: // Hub.Docker.com/r/dpage/pgadmin4/
[3] https: // www.Pgadmin.org/docs/pgadmin4/neuest/container_deployment.html