Como ejecutar PostgreSQL y PgAdmin con Docker
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

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
Corremos y creamos nuestro contenedor de POSTGRES
docker run -d -p 5433:5432 --name baseball-pg -e POSTGRES_PASSWORD=tu_password postgresExpliquemos 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 .
Ejecutamos docker ps en la terminal y debemos ver algo así como resultado

Instalando PgAdmin
El proceso para PgAdmin es muy similar
Descargamos la imagen desde docker hub en la terminal
docker pull dpage/pgadmin4
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/pgadmin4Los 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
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.