Sett opp en PostgreSQL -server og PGADMIN med Docker

Sett opp en PostgreSQL -server og PGADMIN med Docker
I denne artikkelen skal jeg vise deg hvordan du bruker Docker-komponering for å lage en PostgreSQL-beholder og få tilgang til den ved hjelp av PGADMIN 4, det nettbaserte PostgreSQL Admin-grensesnittet. Jeg vil også vise deg hvordan du får tilgang til PostgreSQL -databaseserveren som kjører i en Docker -container fra Datagrip IDE. Så la oss komme i gang.

Krav:

For å følge denne artikkelen, må du ha Docker installert på datamaskinen din. Linuxhint har mange artikler som du kan følge for å installere Docker på ønsket Linux -distribusjon hvis du ikke har den installert allerede. Så husk å sjekke Linuxhint.com i tilfelle du har problemer med å installere docker.

Installere Docker Compose:

Du kan laste ned Docker Compose Binary File veldig enkelt med følgende kommando:

$ sudo curl -l "https: // github.com/docker/kompose/utgivelser/nedlasting/1.24.1/
Docker-Compose-$ (Uname -s)-$ (Uname -m) "-o/usr/local/bin/docker-compose

MERK: krøll kan ikke installeres på Linux -distribusjonen din. Hvis det er tilfelle, kan du installere Curl med følgende kommando:

Ubuntu/Debian/Linux Mint:

$ sudo apt install curl -y

Centos/RHEL/Fedora:

$ sudo dnf install curl -y

En gang Docker-Compose Binærfil lastes ned, kjør følgende kommando:

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

Nå, sjekk om Docker-Compose Kommandoen fungerer som følger:

$ Docker-Compose-versjon

Den skal skrive ut versjonsinformasjonen som vist på skjermdumpen nedenfor.

Sette opp Docker -komponering for prosjektet:

Lag nå en prosjektkatalog (la oss si ~/docker/pgdev) følgende:

$ mkdir -p ~/docker/pgdev

Naviger nå til prosjektkatalogen ~/docker/pgdev følgende:

$ CD ~/docker/pgdev

Nå, lage en Docker-Compose.Yaml fil i prosjektkatalogen ~/docker/pgdev og skriv inn følgende linjer i Docker-Compose.Yaml fil.

Versjon: "3.7 "
tjenester:
DB:
Bilde: Postgres: 12.2
Start på nytt: Alltid
miljø:
Postgres_db: Postgres
POSTGRES_USER: Admin
Postgres_Password: Hemmelighet
Pgdata:/var/lib/postgreSql/data
Volum:
- db-data:/var/lib/postgreSql/data
Porter:
- "5432: 5432"
Pgadmin:
Bilde: DPAGE/PGADMIN4: 4.18
Start på nytt: Alltid
miljø:
Pgadmin_default_email: [email protected]
Pgadmin_default_password: hemmelighet
PGADMIN_LISTEN_PORT: 80
Porter:
- "8080: 80"
Volum:
- pgadmin-data:/var/lib/pgadmin
lenker:
- "DB: PGSQL-SERVER"
Volum:
DB-data:
pgadmin-data:

De Docker-Compose.Yaml filen skal se ut som følger.

Her har jeg opprettet to tjenester db og pgadmin.

db tjenesten vil kjøre Postgres: 12.2 Bilde (fra Dockerhub) i en Docker -beholder.

pgadmin tjenesten vil kjøre DPAGE/PGADMIN4: 4.18 Bilde (fra Dockerhub) i en annen Docker -container.

I db Service, The Postgres_db, Postgres_user, Postgres_password Miljøvariabler brukes til å angi standard databasenavn, administrator brukernavn og administratorbrukerpassord for henholdsvis PostgreSQL -serveren. De Pgdata Miljøvariabel brukes til å konfigurere PostgreSQL -serveren for å lagre dataene til /var/lib/postgreSql/data Katalogen til beholderen.

I pgadmin Service, The PGADMIN_DEFAULT_EMAIL, Pgadmin_default_password Miljøvariabler brukes til å angi innloggings -e -post og passord for henholdsvis PGADMIN Web -grensesnitt. De PGADMIN_LISTEN_PORT brukes til å stille inn pgadminport 80 i beholderen.

I DB -tjeneste, alt innholdet i /var/lib/postgreSql/data Katalogen vil bli lagret permanent i DB-data volum.

I pgadmin service, alt innholdet i /var/lib/pgadmin Katalogen vil bli lagret permanent i pgadmin-data volum.

I db Service, containerporten 5432 (til høyre) er kartlagt til Docker -vertsporten 5432 (venstre).

I pgadmin Service, containerporten 80 (til høyre) er kartlagt til Docker -vertsporten 8080 (venstre).

I pgadmin Service, et vertsnavn alias PGSQL-SERVER til db beholderen opprettes. Så du kan få tilgang til PostgreSQL -serveren ved hjelp av PGSQL-SERVER Som vertsnavn (ingen IP -adresse kreves).

Starter PostgreSQL Server og PGADMIN:

Nå, for å starte db og pgadmin Tjenester, kjør følgende kommando:

$ docker -compose up -d

Tjenestene skal starte i bakgrunnen.

Som du ser, porten 8080 og 5432 åpnes av Docker-Proxy service.

$ sudo netstat -tlpn

For å se hvordan portene er kartlagt, kjør følgende kommando:

$ Docker-Compose Ps

Som du kan se, for db Service, Docker Host Port 5432 er kartlagt til containeren TCP -port 5432.

For pgadmin Service, Docker Host Port 8080 er kartlagt til containeren TCP -port 80.

Få tilgang til PGADMIN 4 eller PostgreSQL -server fra andre datamaskiner:

Hvis du vil få tilgang til PGADMIN 4 eller PostgreSQL -databaseserver fra en annen datamaskin på nettverket ditt, må du kjenne IP -adressen til Docker -verten din.

For å finne IP -adressen til Docker -verten din, kjør følgende kommando:

$ ip

I mitt tilfelle er IP -adressen til Docker -verten min 192.168.20.160. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.

Få tilgang til PGADMIN fra nettleser:

Nå kan du enkelt få tilgang til PGADMIN 4 fra nettleseren din.

Besøk http: // localhost: 8080 fra Docker -verten din eller http: // 192.168.20.160: 8080 fra hvilken som helst datamaskin på nettverket ditt. Du bør se PGADMIN -påloggingssiden. Logg inn med e -post og passord.

Når du har logget inn, bør du se Pgadmin -dashbordet.

Nå, for å legge til PostgreSQL -serveren som en Docker -beholder, høyreklikk på Servere, Og gå til deretter Skape > Server ..

I Generell Tab, skriv inn serveren din Navn.

Nå, gå til Forbindelse Tab og skriv inn PGSQL-SERVER som Vertsnavn/adresse, 5432 som Havn, Postgres som Vedlikeholdsdatabase, admin som Brukernavn, hemmelig som Passord og sjekk Lagre passord? avkrysningsrute. Klikk deretter på Lagre.

PGADMIN 4 skal kobles til PostgreSQL -databasen. Nå kan du jobbe med PostgreSQL -databasen din så mye du vil.

Få tilgang til PostgreSQL fra Datagrip:

Du kan også få tilgang til PostgreSQL -databaseserveren din fra Datagrip IDE eller andre SQL IDES.

I tilfelle av datagrip, klikk på + fra Databaser seksjon og gå til Datakilde > PostgreSql.

PostgreSQL -sjåføren er kanskje ikke installert. I så fall klikker du på nedlasting.

Sjåføren skal installeres. Skriv inn Docker -verten IP -adresse nå 192.168.20.160 (I mitt tilfelle) som Vert, 5432 som Havn, admin som Bruker, hemmelig som Passord, Postgres som Database og klikk på Testforbindelse.

Du bør se PostgreSQL -databaseserverdetaljene hvis alt fungerer.

Nå, klikk på Ok.

Nå kan du administrere PostgreSql -databasene fra Datagrip.

Stopper PostgreSQL og Pgadmin:

Nå, for å stoppe db og pgadmin Tjenester, kjør følgende kommando:

$ Docker-Compose Down

De db og pgadmin Tjenester bør stoppes.

Rydd opp PostgreSQL og PGADMIN -data:

Hvis du vil fjerne alle PostgreSQL -databasedataene og innstillingene, og alle PGADMIN -innstillingene, må du fjerne DB-data og pgadmin-data Volum.

Du kan finne det faktiske navnet på datavolumene med følgende kommando:

$ docker volum ls

Som du kan se, er det 2 bind for PGDEV prosjekt, PGDEV_DB-DATA og PGDEV_PGADMIN-DATA.

Du kan fjerne disse volumene med følgende kommando:

$ docker volum rm pgdev_db-data pgdev_pgadmin-data

Referanser:

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