Imposta un server PostgreSQL e PGADMIN con Docker

Imposta un server PostgreSQL e PGADMIN con Docker
In questo articolo, ti mostrerò come utilizzare Docker Compose per creare un contenitore PostgreSQL e accedervi utilizzando PGADMIN 4, l'interfaccia di amministrazione postgresql basata sul Web. Ti mostrerò anche come accedere al server di database PostgreSQL in esecuzione in un contenitore Docker da DataGrip IDE. Quindi iniziamo.

Requisiti:

Per seguire questo articolo, è necessario installare Docker sul tuo computer. Linuxhint ha molti articoli che puoi seguire per installare Docker sulla distribuzione di Linux desiderata se non lo hai già installato. Quindi, assicurati di controllare Linuxhint.com nel caso in cui tu abbia problemi a installare Docker.

Installazione di Docker Compositura:

È possibile scaricare il file binario di Docker Composition molto facilmente con il seguente comando:

$ sudo curl -l "https: // github.com/docker/compose/versioni/download/1.24.1/
docker-compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/docker-compose

NOTA: arricciare potrebbe non essere installato sulla distribuzione di Linux. In questo caso, è possibile installare Curl con il seguente comando:

Ubuntu/Debian/Linux Mint:

$ sudo APT Installa Curl -y

CentOS/RHEL/Fedora:

$ sudo dnf installa curl -y

Una volta docker-compose Il file binario viene scaricato, eseguire il seguente comando:

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

Ora, controlla se docker-compose Il comando funziona come segue:

$ Docker-compose versione

Dovrebbe stampare le informazioni sulla versione come mostrato nello screenshot seguente.

Impostazione di Docker Componomy per il progetto:

Ora, crea una directory di progetto (diciamo ~/docker/pgdev) come segue:

$ mkdir -p ~/docker/pgdev

Ora, vai alla directory del progetto ~/docker/pgdev come segue:

$ cd ~/docker/pgdev

Ora crea un file docker-compose.Yaml file nella directory del progetto ~/docker/pgdev e digitare le seguenti righe in docker-compose.Yaml file.

Versione: "3.7 "
Servizi:
DB:
Immagine: Postgres: 12.2
Riavvia: sempre
ambiente:
Postgres_DB: Postgres
Postgres_user: Admin
Postgres_Password: segreto
Pgdata:/var/lib/postgresql/dati
Volumi:
- DB-DATA:/var/lib/postgresql/dati
Porte:
- "5432: 5432"
pgadmin:
Immagine: dpage/pgadmin4: 4.18
Riavvia: sempre
ambiente:
Pgadmin_default_email: [email protected]
Pgadmin_default_password: segreto
Pgadmin_listen_port: 80
Porte:
- "8080: 80"
Volumi:
- pgadmin-data:/var/lib/pgadmin
Link:
- "DB: PGSQL-Server"
Volumi:
DB-DATA:
pgadmin-data:

IL docker-compose.Yaml Il file dovrebbe apparire come segue.

Qui, ho creato 2 servizi db E pgadmin.

db Il servizio eseguirà il Postgres: 12.2 Immagine (da Dockerhub) in un contenitore Docker.

pgadmin Il servizio eseguirà il dpage/pgadmin4: 4.18 Immagine (da Dockerhub) in un altro contenitore Docker.

In db servizio, il Postgres_db, Postgres_user, Postgres_Password Le variabili di ambiente vengono utilizzate per impostare rispettivamente il nome del database predefinito, il nome utente di amministrazione e la password dell'utente di amministrazione per il server PostgreSQL. IL Pgdata La variabile di ambiente viene utilizzata per configurare il server PostgreSQL per archiviare i dati a /var/lib/postgresql/dati directory del contenitore.

In pgadmin servizio, il Pgadmin_default_email, Pgadmin_default_password Le variabili di ambiente vengono utilizzate per impostare rispettivamente l'e -mail di accesso e la password dell'interfaccia Web PGADMIN. IL Pgadmin_listen_port viene utilizzato per impostare la porta pgadmin 80 nel contenitore.

Nel servizio DB, tutti i contenuti del /var/lib/postgresql/dati La directory verrà salvata in modo permanente nel db-data volume.

Nel pgadmin servizio, tutti i contenuti del /var/lib/pgadmin La directory verrà salvata in modo permanente nel pgadmin-data volume.

Nel db Servizio, la porta del contenitore 5432 (a destra) è mappato alla porta host Docker 5432 (Sinistra).

Nel pgadmin Servizio, la porta del contenitore 80 (a destra) è mappato alla porta host Docker 8080 (Sinistra).

Nel pgadmin Servizio, un alias per nome host PGSQL-Server al db Il contenitore viene creato. Quindi, puoi accedere al server PostgreSQL utilizzando PGSQL-Server Come nome host (nessun indirizzo IP richiesto).

Avvio di PostgreSQL Server e PGADMIN:

Ora, per iniziare il db E pgadmin Servizi, esegui il seguente comando:

$ Docker -Opse Up -D

I servizi dovrebbero iniziare in background.

Come puoi vedere, la porta 8080 E 5432 sono aperti dal Docker-Proxy servizio.

$ sudo netstat -tlpn

Per vedere come sono mappate le porte, eseguire il seguente comando:

$ docker-compose ps

Come puoi vedere, per il db Servizio, la porta host Docker 5432 è mappato alla porta TCP del contenitore 5432.

Per il pgadmin Servizio, la porta host Docker 8080 è mappato alla porta TCP del contenitore 80.

Accesso al server PGADMIN 4 o PostgreSQL da altri computer:

Se si desidera accedere al server di database PGADMIN 4 o PostgreSQL da un altro computer sulla tua rete, è necessario conoscere l'indirizzo IP del tuo host Docker.

Per trovare l'indirizzo IP dell'host Docker, eseguire il seguente comando:

$ ip

Nel mio caso, l'indirizzo IP del mio host Docker 192.168.20.160. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

Accesso a PGadmin dal browser Web:

Ora puoi accedere facilmente a PGadmin 4 dal tuo browser web.

Visita http: // localhost: 8080 dal tuo host Docker o http: // 192.168.20.160: 8080 da qualsiasi computer sulla tua rete. Dovresti vedere la pagina di accesso PGAdmin. Accedi con la tua email e la tua password.

Una volta che accedi, dovresti vedere la dashboard PGADMIN.

Ora, per aggiungere il server PostgreSQL in esecuzione come contenitore Docker, fare clic con il pulsante destro del mouse su Server, e poi vai a Creare > Server…

Nel Generale Scheda, digita il tuo server Nome.

Ora vai al Connessione scheda e digitare PGSQL-Server COME Nome/indirizzo host, 5432 COME Porta, Postgres COME Database di manutenzione, amministratore COME Nome utente, segreto COME Parola d'ordine e controlla Salva la password? Casella di controllo. Quindi, fare clic su Salva.

PGADMIN 4 dovrebbe essere collegato al tuo database PostgreSQL. Ora puoi lavorare con il tuo database PostgreSQL quanto vuoi.

Accesso a PostgreSQL da DataGrip:

È inoltre possibile accedere al server di database PostgreSQL da DataGrip IDE o da qualsiasi altro IDE SQL.

In caso di DataGrip, fare clic su + dal Banche dati sezione e andare a Fonte di dati > Postgresql.

Il driver PostgreSQL potrebbe non essere installato. In tal caso, fare clic su Scaricamento.

Il driver dovrebbe essere installato. Ora, digita l'indirizzo IP host Docker 192.168.20.160 (nel mio caso) come il Ospite, 5432 come il Porta, amministratore come il Utente, segreto come il Parola d'ordine, Postgres come il Banca dati e fare clic su Connessione di prova.

Dovresti vedere i dettagli del server del database PostgreSQL se tutto funziona.

Ora, fai clic su OK.

Ora puoi gestire i tuoi database PostgreSQL da DataGrip.

Fermare PostgreSQL e PGADMIN:

Ora, per fermare il db E pgadmin Servizi, esegui il seguente comando:

$ Docker-compone

IL db E pgadmin I servizi dovrebbero essere fermati.

Pulizia dei dati PostgreSQL e PGADMIN:

Se si desidera rimuovere tutti i dati e le impostazioni del database PostgreSQL e tutte le impostazioni PGADMIN, è necessario rimuovere il db-data E pgadmin-data volumi.

È possibile trovare il nome effettivo dei volumi di dati con il seguente comando:

$ Docker Volume LS

Come puoi vedere, ci sono 2 volumi per il pgdev progetto, pgdev_db-data E pgdev_pgadmin-data.

È possibile rimuovere questi volumi con il seguente comando:

$ Docker Volume RM PGDEV_DB-DATA PGDEV_PGADMIN-DATA

Riferimenti:

[1] https: // hub.Docker.com/_/postgres?Tab = Descrizione
[2] https: // hub.Docker.com/r/dpage/pgadmin4/
[3] https: // www.pgadmin.org/docs/pgadmin4/ultimo/container_deployment.html