Skip to main content

Command Palette

Search for a command to run...

Como ejecutar PostgreSQL y PgAdmin con Docker

Updated
3 min read
R

Soy Ingeniero de Software con más de 10 años de experiencia. Después de pasar por gigantes como UBER estamos intentando mejorar el mundo de los seguros como desarrollador de Backend.

Las bases de datos son una herramienta que no puede faltar en una aplicación . Es dificil imaginar un software donde no se almacene información. Dado que tenemos que convivir dia a dia con los sistemas de gestión de base de datos y alguna herramienta para visualizar nuestros datos hoy vamos a aprender como instalar Postgres y PgAdmin usando docker para evitar todos los dolores de cabeza que nos dan estos dos si los instalamos directamente en nuestro sistema.

Usar Docker nos va a permitir aislar estas dos herramentas en sus propias ambientes de ejecución, podriamos tener varios proyectos con varias versiones diferentes de Postgres también como ventaja.

IMPORTANTE: Debemos tener DOCKER instalado en nuestra computadora. Conocimientos básicos de los conceptos de DOCKER como, imagen, contenedor.

Instalando PostgreSQL con DOCKER

Necesitamos descargar la imagen de PostgreSQL. Para esto vamos al sitio mas popular donde están las imagenes oficiales de estas herramientas, https://hub.docker.com/explore.

Una vez en el sitio buscamos la imagen de Postgres

Utilizaremos el primer resultado dado que es la imagen oficial mantenida por el equipo de desarrollo de postgres

  1. Copiamos el comando para descargar la imagen en nuestra computadora. Puedes usar la seccion de TAGS en la página de la imagen si necesitas descargar otra versión que no es la más reciente.

docker pull postgres
  1. Corremos y creamos nuestro contenedor de POSTGRES

  2.  docker run -d -p 5433:5432 --name baseball-pg -e POSTGRES_PASSWORD=tu_password postgres
    

    Expliquemos un poco este comando.

    -d nos permite correr el contenedor en modo background por así decirlo. Si no agregamos esta opción el contenedor se ejecutará en nuestra terminal pero si la cerramos el contenedor se detiene.

    - p lo utilizamos para mapear el puerto interno de postgres con el puerto de nuestra computadora donde estaremos conectandonos. En este caso mapeamos el 5432 interno con el 5433 de nuestra computadora.

    -e lo usamos para crear la variable de entorno de nuestro contenedor que tendrá el password

    - El último parámetro es el nombre de la imagen que vamos a usar para correr nuestro contenedor .

  3. Ejecutamos docker ps en la terminal y debemos ver algo así como resultado

Instalando PgAdmin

El proceso para PgAdmin es muy similar

  1. Descargamos la imagen desde docker hub en la terminal

    docker pull dpage/pgadmin4

  2. Corremos el contenedor de pgadmin

     docker run --name test-pgadmin -p 15432:80 -e "PGADMIN_DEFAULT_EMAIL=my_email@test.com" -e "PGADMIN_DEFAULT_PASSWORD=password" -d dpage/pgadmin4
    
  3. Los parámetros son los siguientes:

    -d ya lo conocemos , ejecutar el contenedor en background.

    -e para agregar las variables de entorno necesarias para las credenciales de autenticación.

    -p para mapear el puerto interno del contenedor con le de nuestra computadora. En este caso el 80 interno con el 15432 de nuestra computadora.

    — name para asignar un nombre a nuestro contenedor

  4. Ejecutamos docker ps en nuestra terminal para validar que esta corriendo .

    Podemos comprobar que ambos contenedores están ejecutandose si ves una respuesta similar.

Acceder a nuestro Postgres desde PgAdmin

Vamos nuestro navegador y ejecutamos la url localhost:15432

Accedemos con las credenciales que agregamos en el docker run con las variables PGADMIN_DEFAULT_EMAIL y PGADMIN_DEFAULT_PASSWORD.

Para conectar tu base de datos en el PG admin debes crear un servidor y agregar esta información.

Espero les sirva y si tienen cualquier duda escríbeme.

More from this blog

Aquí hay Python, DevOps, AI, Javascript

15 posts

Este espacio es donde guardo todo aquello que me ha servido a mi en mi camino como Ingeniero de Software y creo te puede ayudar. No hay un tema específico y escribo como me viene a la mente.