Salta el contingut
 

Instal·lació de PostgreSQL

Joan Puigcerver Ibáñez

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Instal·lació de PostgreSQL

En aquest curs, PostgreSQL s'executa dins d'un contenidor de Docker. D'aquesta manera, no cal instal·lar el servidor en el sistema amfitrió i es pot crear, aturar o eliminar la base de dades sense deixar rastre en la màquina.

Obtenció de la imatge

PostgreSQL disposa d'una imatge oficial a Docker Hub. Es descarrega la versió 16 amb l'ordre:

docker pull postgres:16

Execució del contenidor

La imatge necessita, com a mínim, la variable d'entorn POSTGRES_PASSWORD, que defineix la contrasenya de l'usuari administrador postgres. A més, es publica el port 5432 perquè els clients de l'amfitrió es puguen connectar al servidor:

docker run -d --name postgres16 -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:16

Configuració amb Docker Compose

Per no haver de recordar totes les opcions de docker run, és més còmode definir el servei en un fitxer docker-compose.yml. A més, aquest fitxer munta el directori de dades en un volum, de manera que les dades es conserven encara que s'elimine el contenidor:

services:
  postgres-db:
    container_name: postgres16
    image: postgres:16
    environment:
      - POSTGRES_PASSWORD=postgres
    ports:
      - 5432:5432
    volumes:
      - ./pgdata:/var/lib/postgresql/data

El servei s'inicia en segon pla amb l'ordre:

docker compose up -d

Per comprovar que el servidor ha arrancat correctament, es poden consultar els registres del contenidor:

docker logs -f postgres16

Si el servidor no arranca o dona errors, vegeu Registre del servidor per interpretar els missatges del registre.

Connexió a la base de dades

Una vegada el contenidor està en funcionament, hi ha dues maneres habituals d'accedir-hi:

  • Terminal del contenidor: obri una sessió bash dins del contenidor, útil per consultar fitxers de configuració o executar ferramentes del servidor.

    docker exec -it postgres16 bash
    
  • Client psql: obri directament el client de línia d'ordres de PostgreSQL connectat amb l'usuari postgres.

    docker exec -it postgres16 psql -U postgres
    

Vegeu Configuració de connexions per connectar-se des d'altres clients.

📌 Aquest document pot quedar desactualitzat després d’imprimir-lo. Pots consultar la versió més recent a la pàgina web.
🌿 Abans d’imprimir aquest document, considera si és realment necessari. Redueix el consum de paper i ajuda a protegir el nostre entorn.