Visualizar tus bases de datos PostgreSQL con pgAdmin
Muchas aplicaciones utilizan bases de datos PostgreSQL en su pila de aplicaciones. Sin embargo, no todos los desarrolladores están familiarizados con la navegación y el trabajo con bases de datos PostgreSQL.
Afortunadamente, cuando utilizas contenedores en el desarrollo, es sencillo agregar servicios adicionales para ayudar con la resolución de problemas y la depuración.
La herramienta pgAdmin es una opción popular de código abierto diseñada para ayudar a administrar y visualizar bases de datos PostgreSQL.
En esta guía aprenderás a:
- Agregar pgAdmin a tu pila de aplicaciones
- Configurar pgAdmin para conectarse automáticamente a la base de datos de desarrollo
Agregar pgAdmin a tu pila
En tu archivo
compose.yaml, agrega el serviciopgadminjunto a tu serviciopostgresexistente:services: postgres: image: postgres:18 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: secret POSTGRES_DB: demo pgadmin: image: dpage/pgadmin4:9.8 ports: - 5050:80 environment: # Requerido por pgAdmin PGADMIN_DEFAULT_EMAIL: [email protected] PGADMIN_DEFAULT_PASSWORD: secret # No requiere que el usuario inicie sesión PGADMIN_CONFIG_SERVER_MODE: 'False' # No requiere una contraseña "maestra" después de iniciar sesión PGADMIN_CONFIG_MASTER_PASSWORD_REQUIRED: 'False'Inicia la pila de Compose con el siguiente comando:
$ docker compose upDespués de que se descargue la imagen y el contenedor se inicie, verás una salida similar a la siguiente indicando que pgAdmin está listo:
pgadmin-1 | [2025-09-22 15:52:47 +0000] [1] [INFO] Starting gunicorn 23.0.0 pgadmin-1 | [2025-09-22 15:52:47 +0000] [1] [INFO] Listening at: http://[::]:80 (1) pgadmin-1 | [2025-09-22 15:52:47 +0000] [1] [INFO] Using worker: gthread pgadmin-1 | [2025-09-22 15:52:47 +0000] [119] [INFO] Booting worker with pid: 119Abre pgAdmin yendo a http://localhost:5050.
Una vez en el panel de administración, selecciona el enlace Add New Server para definir un nuevo servidor. Ingresa los siguientes detalles:
- Pestaña General:
- Name:
postgres
- Name:
- Pestaña Connection:
- Host name/address:
postgres - Username:
postgres - Password:
secret - Activa el campo Save password?
- Host name/address:
ImportantEstos detalles de conexión asumen que estás utilizando el fragmento de archivo Compose anterior. Si estás usando un archivo Compose existente, ajusta los detalles de conexión según sea necesario. El campo Host name/address debe coincidir con el nombre de tu servicio postgres.
- Pestaña General:
Selecciona el botón Save para crear la base de datos.
Ahora tienes pgAdmin configurado y conectado a tu base de datos contenedorizada. Siéntete libre de navegar, ver las tablas y explorar tu base de datos.
Configurar pgAdmin para que se conecte automáticamente a la base de datos
Aunque tengas pgAdmin en funcionamiento, sería ideal si pudieras abrir la aplicación directamente sin necesidad de configurar la conexión de la base de datos. Reducir los pasos de configuración es una excelente manera de facilitar que tus compañeros aprovechen esta herramienta.
Afortunadamente, existe la posibilidad de conectarse automáticamente a la base de datos.
WarningPara conectarse automáticamente, las credenciales de la base de datos se comparten mediante archivos de texto plano. Durante el desarrollo local, esto suele ser aceptable ya que los datos locales no son datos reales de clientes. Sin embargo, si estás utilizando datos de producción o confidenciales, se desaconseja totalmente esta práctica.
Primero, necesitas definir el servidor en sí, lo cual pgAdmin hace usando un archivo
servers.json.Agrega lo siguiente a tu archivo
compose.yamlpara definir un archivo de configuración para el archivoservers.json:configs: pgadmin-servers: content: | { "Servers": { "1": { "Name": "Local Postgres", "Group": "Servers", "Host": "postgres", "Port": 5432, "MaintenanceDB": "postgres", "Username": "postgres", "PassFile": "/config/pgpass" } } }El archivo
servers.jsondefine un campoPassFile, que es una referencia a los archivos de contraseña de PostgreSQL. A menudo se les conoce como archivo pgpass.Agrega la siguiente configuración a tu archivo
compose.yamlpara definir un archivo pgpass:configs: pgadmin-pgpass: content: | postgres:5432:*:postgres:secretEsto indicará que cualquier solicitud de conexión a
postgres:5432utilizando el usuariopostgresdebe proporcionar la contraseñasecret.En tu archivo
compose.yaml, actualiza el serviciopgadminpara inyectar los archivos de configuración:services: pgadmin: ... configs: - source: pgadmin-pgpass target: /config/pgpass uid: "5050" gid: "5050" mode: 0400 - source: pgadmin-servers target: /pgadmin4/servers.json mode: 0444Actualiza la pila de la aplicación ejecutando
docker compose upnuevamente:$ docker compose upUna vez que la aplicación se haya reiniciado, abre tu navegador en http://localhost:5050. Deberías poder acceder a la base de datos sin necesidad de iniciar sesión ni realizar ninguna configuración.
Conclusión
El uso de contenedores facilita no solo la ejecución de las dependencias de tu aplicación, sino también de herramientas adicionales para ayudar con la resolución de problemas y la depuración.
Cuando agregues herramientas, piensa en la experiencia y en las posibles dificultades que tus compañeros de equipo puedan experimentar, y en cómo podrías eliminarlas. En este caso, pudiste dar un paso adicional agregando una configuración para configurar y conectar automáticamente las bases de datos, ahorrando un tiempo valioso a tu equipo.