GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Esecuzione di PostgreSQL in Docker, una guida rapida e pratica

Questo tutorial ti guiderà attraverso come eseguire PostgreSQL con archiviazione persistente all'interno di un container Docker e connetterti ad esso.

PostgreSQL è un sistema di gestione di database relazionale a oggetti open source. È in circolazione da oltre 30 anni e si pubblicizza come "il database relazionale open source più avanzato al mondo".

Docker è diventato uno standard nel settore IT per il confezionamento, la distribuzione e l'esecuzione di applicazioni distribuite con facilità. I contenitori Docker ti consentono di creare rapidamente nuove applicazioni senza ingombrare il tuo sistema di dipendenze.

Puoi utilizzare Docker per eseguire un database PostgreSQL in un container come server remoto. I container Docker si basano su standard aperti, consentendo ai container di essere eseguiti su tutte le principali distribuzioni Linux, macOS e Microsoft Windows.

Esegui PostgreSQL nella finestra mobile

Faremo qui per scaricare l'immagine PostgreSQL, verificare che l'immagine sia pronta, eseguire l'immagine con parametri specifici e infine connetterci all'istanza PostgreSQL in esecuzione.

1. Estrarre un'immagine Docker di PostgreSQL Server

Innanzitutto, dobbiamo ottenere un'immagine ufficiale PostgreSQL esistente dal Docker Hub. Le immagini sono disponibili per le versioni PostgreSQL 9, 10, 11, 12 e 13. Modifica l'latest   tagga la versione richiesta se hai bisogno di una versione specifica.

Ora estraiamo l'immagine:

sudo docker pull postgres:latest

L'utilizzo del comando precedente estrarrà l'ultima versione disponibile di PostgreSQL dal repository Docker Hub.

2. Esegui un contenitore dall'immagine Docker di PostgreSQL Server

Prima della distribuzione, dovrai configurare un volume Docker o associare il montaggio per rendere persistente il tuo database. In caso contrario, i dati andranno persi al riavvio del contenitore. Il montaggio deve essere eseguito su /var/lib/postgresql/data directory all'interno del contenitore.

Creeremo un volume Docker per questa guida e lo allegheremo al tuo contenitore PostgreSQL.

Il comando seguente creerà il volume nella tua macchina locale, che potrai connettere al contenitore PostgreSQL in un secondo momento:

sudo docker volume create postgres-volume

Ora che hai un'immagine PostgreSQL sul tuo computer e un volume per rendere persistenti i dati, puoi distribuire un container con:

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

Il comando docker run creerà un database PostgreSQL in esecuzione all'interno di un container Docker.

Analizziamo questa sintassi. Innanzitutto, ecco cosa significa ogni parametro in quel comando:

  • -d eseguirà questo contenitore in modalità separata per eseguirlo in background.
  • --name assegna il nome postgres13 alla tua istanza del contenitore.
  • -p collegherà la porta del contenitore PostgreSQL 5432 alla stessa porta sul tuo computer host. Potrai connetterti a localhost:5432 utilizzando i client PostgreSQL (psql ) in esecuzione sul tuo host.
  • -v l'opzione associa quella cartella di dati all'interno del volume del contenitore (/var/lib/postgresql ) al volume Docker locale (postgres-volume ) che hai creato nel passaggio precedente.
  • -e imposta una variabile di ambiente. In questo caso, la password di root di PostgreSQL.
  • postgres è il nome dell'immagine che utilizziamo per creare il contenitore.

Puoi verificare se il container è in esecuzione elencando i container in esecuzione:

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

Congratulazioni! La tua nuova istanza PostgreSQL è ora in esecuzione su Docker.

Inoltre, puoi controllare il file di registro del contenitore PostgreSQL in esecuzione con il seguente comando:

sudo docker logs postgres13

3. Connettiti a PostgreSQL Server

Puoi ottenere una shell PostgreSQL interattiva collegandola al container ed eseguendo psql comando. Ciò fornisce l'interfaccia a riga di comando completa di PostgreSQL per utilizzare tutti i comandi e i flag familiari.

sudo docker exec -it postgres13 psql -U postgres

Puoi anche connetterti con l'istanza PostgreSQL Docker usando psql Client PostgreSQL se lo hai preinstallato sul tuo host.

psql -h localhost -U postgres

Conclusione

Uno dei casi d'uso più significativi dell'utilizzo di Docker è la facilità di creazione e accesso alle applicazioni create all'interno di container senza preoccuparsi di dipendenze e installazioni.

In questo tutorial, abbiamo appreso come configurare un server PostgreSQL utilizzando Docker invece della macchina host reale.

Con l'architettura di microservizi in cui microservizi diversi si basano sui loro database, la distribuzione di server PostgreSQL come contenitori Docker è diventata comune.

È anche ampiamente utilizzato per l'esecuzione locale o per i test di integrazione end-to-end in un ambiente isolato.

Fammi sapere se hai domande o suggerimenti e sarò felice di ricontattarti.


Docker
  1. Come eseguire Nginx in un contenitore Docker:una guida passo passo

  2. differenza tra podman e docker.

  3. Che cos'è Docker (e contenitori Linux?)

  4. Quando e perché usare Docker

  5. Come eseguire un comando su un contenitore Docker in esecuzione

Guida Docker:distribuzione di Ghost Blog con MySQL e Traefik con Docker

Come installare e utilizzare Docker su Ubuntu 22.04

Come ripulire ed eliminare le immagini Docker

.NET Core e Docker

Creazione, esecuzione e test di .NET Core e ASP.NET Core 2.1 in Docker su un Raspberry Pi (ARM32)

.NET e Docker