# Como ejecutar PostgreSQL y PgAdmin con Docker

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](https://hub.docker.com/explore).

Una vez en el sitio buscamos la imagen de Postgres

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1741956972286/2a930882-0226-4e93-91d8-0a7e3f889790.png align="center")

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

1. ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1741957060472/3908c07e-f54c-4cf3-9fd1-251f45eeaa01.png align="center")
    
    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.
    

```bash
docker pull postgres
```

2. Corremos y creamos nuestro contenedor de POSTGRES
    
3. ```bash
    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 .
    
4. Ejecutamos **docker ps** en la terminal y debemos ver algo así como resultado
    
5. ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1741960851638/529287e4-0e15-456f-bd8f-139ecfcdda05.png align="center")
    

## 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
    
    ```bash
    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 .
    
    ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1741961252064/70124db0-53cd-4b6d-805a-73d47cc8ba2c.png align="center")
    
    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.**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742299754047/699ac24b-d74f-4a30-ba63-c8073cff2298.png align="center")

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

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1742299868940/8227bae9-45d7-4463-99c8-c368457c1669.png align="center")

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