D

Docker & PostgreSQL

PostgreSQL desde Contenedor de Docker

Volver al contenido

Copiar enlace

En este tutorial aprenderas a usar PostgreSQL desde un contenedor de Docker. Aprenderas a instalarlo, ejectuar los comandos básicos de configuracion y tambien como interactuar con nuestro contenedor desde otras aplicaciones como Cliente SQL o código.

Requerimientos

Para este tutorial es necesario tener los siguientes Requerimientos:

  • Tener Docker Instalado y conocer sus bases
  • Conocimientos básicos de la consola
  • Conocimientos Básicos de PostgreSQL

Recursos

Antes de empeza es muy bueno tener cerca la documentación:

Instalacion del Contenedor de PostgreSQL

Lo primero es descargar el contenedore:

docker pull postgres

Una vez descargado podemos crear una instanacia con:

docker run postgres

sin embargo esta nos solicita colocar una contraseña inicial de configuracion:

docker run -e POSTGRES_PASSWORD=password postgres

Este comando creara una instancia. Pero como esta ejecutandose en una consola necesitaremos abrir otra consola o terminal para interactuar con el contenedor.

docker exec -it <container_name> bash

Una vez dentro del contenedor, puedes ejecutar:

psql -U postgres --password

En nuestro caso la contraseña es password

Y podemos ejecutar las consultas tipicas como:

CREATE DATABASE test;
SELECT 1 + 1 AS result;

Para salir del contenedor podemos presionar Ctrl + D dos veces (una para cerrar psql y otra para salir del contenedor).

Colocar un nombre al contenedor

Ahora es comun colocarle un nombre a nuestro contenedor para eso podemos usar el parametro name.

Primero eliminemos el contenedor y luego ejecutemoslo otra vez.

docker ps -a
docker rm <container_name>

y creemoslo otra vez:

docker run --name myposgres -e POSTGRES_PASSWORD=password postgres

Luego para conectarnos podemos ejecutar:

docker exec -it mypostgres bash

Ejecutar en Detach Mode

Variables de entorno

  • POSTGRES_PASSWORD. esta es la unica Variable requerida
  • POSTGRES_USER. esta creara un usuario nuevo. se usa conjuntamente con la Variable POSTGRES_PASSWORD
docker run --name myposgres -e POSTGRES POSTGRES_PASSWORD=password postgres

EL siguiente comando es uno de los que más uso cuando desarrollo con postgres

docker run --name some-postgres -e POSTGRES_USER=fazt -e POSTGRES_PASSWORD=mysecretpassword -d postgres
psql -U fazt --password

POSTGRES_DB

docker run --name some-postgres -e POSTGRES_USER=fazt -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_DB=mydb postgres
psql -U fazt --db mydb

multiples lineas:

Tambien es posible escribir el comando en multiples lineas:

docker run -d \
--name some-postgres \
-e POSTGRES_PASSWORD=password \
-p 5432:5432 \
postgres

Acceder al contenedor desde Fuera

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres

Este es el comando que más uso, el cual permite crear un usuario con contraseña, exponer postgresql en el puerto 5432, y usarlo en modo Detach para que se ejecute en segundo plano:

docker run --name some-postgres -e POSTGRES_USER=fazt -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres

A partir de aqui puedes acceder al conteneder utilizando Clientes SQL como DBeaver

CREANDO CON UNA BASE DE DATOS

Tambien es posible usar la Variable de entorno POSTGRES_DB para poder crear una base de datos cuando iniciamos el contenedor.

docker run --name some-postgres -e POSTGRES_USER=fazt -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_DB=tasksdb -p 5432:5432 -d postgres

para poder conectarnos desde psql, usaremos el comando:

psql -U fazt tasksdb

Comandos Básicos

docker stop <id>
docker rm <id>

Volumes

docker run --name some-postgres -v /my/own/datadir:/var/lib/postgresql/data -e POSTGRES_PASSWORD=mysecretpassword -d postgres:tag

Y si necesito la interfaz pgadmin, este es el comando que uso con docker-compose:

Actualizado por ultima vez el

Aprende a utilizar PostgreSQL desde un contenedor en Docker. En este tutorial aprenderás. a instalarlo, aprenderás sus parámetros y a como conectarlo con tu sistema operativo local desde aplicaciones

¿Quieres Compatir mi Contenido?

Publicado:hace 3 años

Actualizado:hace 10 meses

;